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

.p24 {
  padding: 24px;
}
@media screen and (max-width: 1439px) {
  .p24 {
    padding: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}

.p32 {
  padding: 32px;
}
@media screen and (max-width: 1439px) {
  .p32 {
    padding: max(16px, 16px + 16 * (100vw - 390px) / 1049);
  }
}

.p40 {
  padding: 40px;
}
@media screen and (max-width: 1439px) {
  .p40 {
    padding: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}

.p60 {
  padding: 60px;
}
@media screen and (max-width: 1439px) {
  .p60 {
    padding: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}

.p100 {
  padding: 100px;
}
@media screen and (max-width: 1439px) {
  .p100 {
    padding: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}

.p120 {
  padding: 120px;
}
@media screen and (max-width: 1439px) {
  .p120 {
    padding: max(60px, 60px + 60 * (100vw - 390px) / 1049);
  }
}

.pt24 {
  padding-top: 24px;
}
@media screen and (max-width: 1439px) {
  .pt24 {
    padding-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}

.pt32 {
  padding-top: 32px;
}
@media screen and (max-width: 1439px) {
  .pt32 {
    padding-top: max(16px, 16px + 16 * (100vw - 390px) / 1049);
  }
}

.pt40 {
  padding-top: 40px;
}
@media screen and (max-width: 1439px) {
  .pt40 {
    padding-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}

.pt60 {
  padding-top: 60px;
}
@media screen and (max-width: 1439px) {
  .pt60 {
    padding-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}

.pt100 {
  padding-top: 100px;
}
@media screen and (max-width: 1439px) {
  .pt100 {
    padding-top: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}

.pt120 {
  padding-top: 120px;
}
@media screen and (max-width: 1439px) {
  .pt120 {
    padding-top: max(60px, 60px + 60 * (100vw - 390px) / 1049);
  }
}

.pb24 {
  padding-bottom: 24px;
}
@media screen and (max-width: 1439px) {
  .pb24 {
    padding-bottom: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}

.pb32 {
  padding-bottom: 32px;
}
@media screen and (max-width: 1439px) {
  .pb32 {
    padding-bottom: max(16px, 16px + 16 * (100vw - 390px) / 1049);
  }
}

.pb40 {
  padding-bottom: 40px;
}
@media screen and (max-width: 1439px) {
  .pb40 {
    padding-bottom: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}

.pb60 {
  padding-bottom: 60px;
}
@media screen and (max-width: 1439px) {
  .pb60 {
    padding-bottom: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}

.pb100 {
  padding-bottom: 100px;
}
@media screen and (max-width: 1439px) {
  .pb100 {
    padding-bottom: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}

.pb120 {
  padding-bottom: 120px;
}
@media screen and (max-width: 1439px) {
  .pb120 {
    padding-bottom: max(60px, 60px + 60 * (100vw - 390px) / 1049);
  }
}

.pv24 {
  padding: 24px 0;
}
@media screen and (max-width: 1439px) {
  .pv24 {
    padding: max(12px, 12px + 12 * (100vw - 390px) / 1049) 0;
  }
}

.pv32 {
  padding: 32px 0;
}
@media screen and (max-width: 1439px) {
  .pv32 {
    padding: max(16px, 16px + 16 * (100vw - 390px) / 1049) 0;
  }
}

.pv40 {
  padding: 40px 0;
}
@media screen and (max-width: 1439px) {
  .pv40 {
    padding: max(20px, 20px + 20 * (100vw - 390px) / 1049) 0;
  }
}

.pv60 {
  padding: 60px 0;
}
@media screen and (max-width: 1439px) {
  .pv60 {
    padding: max(30px, 30px + 30 * (100vw - 390px) / 1049) 0;
  }
}

.pv100 {
  padding: 100px 0;
}
@media screen and (max-width: 1439px) {
  .pv100 {
    padding: max(50px, 50px + 50 * (100vw - 390px) / 1049) 0;
  }
}

.pv120 {
  padding: 120px 0;
}
@media screen and (max-width: 1439px) {
  .pv120 {
    padding: max(60px, 60px + 60 * (100vw - 390px) / 1049) 0;
  }
}

.mt24 {
  margin-top: 24px;
}
@media screen and (max-width: 1439px) {
  .mt24 {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}

.mt32 {
  margin-top: 32px;
}
@media screen and (max-width: 1439px) {
  .mt32 {
    margin-top: max(16px, 16px + 16 * (100vw - 390px) / 1049);
  }
}

.mt40 {
  margin-top: 40px;
}
@media screen and (max-width: 1439px) {
  .mt40 {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}

.mt60 {
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  .mt60 {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}

.mt100 {
  margin-top: 100px;
}
@media screen and (max-width: 1439px) {
  .mt100 {
    margin-top: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}

.mt120 {
  margin-top: 120px;
}
@media screen and (max-width: 1439px) {
  .mt120 {
    margin-top: max(60px, 60px + 60 * (100vw - 390px) / 1049);
  }
}

.mb24 {
  margin-bottom: 24px;
}
@media screen and (max-width: 1439px) {
  .mb24 {
    margin-bottom: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}

.mb32 {
  margin-bottom: 32px;
}
@media screen and (max-width: 1439px) {
  .mb32 {
    margin-bottom: max(16px, 16px + 16 * (100vw - 390px) / 1049);
  }
}

.mb40 {
  margin-bottom: 40px;
}
@media screen and (max-width: 1439px) {
  .mb40 {
    margin-bottom: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}

.mb60 {
  margin-bottom: 60px;
}
@media screen and (max-width: 1439px) {
  .mb60 {
    margin-bottom: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}

.mb100 {
  margin-bottom: 100px;
}
@media screen and (max-width: 1439px) {
  .mb100 {
    margin-bottom: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}

.mb120 {
  margin-bottom: 120px;
}
@media screen and (max-width: 1439px) {
  .mb120 {
    margin-bottom: max(60px, 60px + 60 * (100vw - 390px) / 1049);
  }
}

.mv24 {
  margin: 24px 0;
}
@media screen and (max-width: 1439px) {
  .mv24 {
    margin: max(12px, 12px + 12 * (100vw - 390px) / 1049) 0;
  }
}

.mv32 {
  margin: 32px 0;
}
@media screen and (max-width: 1439px) {
  .mv32 {
    margin: max(16px, 16px + 16 * (100vw - 390px) / 1049) 0;
  }
}

.mv40 {
  margin: 40px 0;
}
@media screen and (max-width: 1439px) {
  .mv40 {
    margin: max(20px, 20px + 20 * (100vw - 390px) / 1049) 0;
  }
}

.mv60 {
  margin: 60px 0;
}
@media screen and (max-width: 1439px) {
  .mv60 {
    margin: max(30px, 30px + 30 * (100vw - 390px) / 1049) 0;
  }
}

.mv100 {
  margin: 100px 0;
}
@media screen and (max-width: 1439px) {
  .mv100 {
    margin: max(50px, 50px + 50 * (100vw - 390px) / 1049) 0;
  }
}

.mv120 {
  margin: 120px 0;
}
@media screen and (max-width: 1439px) {
  .mv120 {
    margin: max(60px, 60px + 60 * (100vw - 390px) / 1049) 0;
  }
}

@media screen and (max-width: 767px) {
  .pc-on {
    display: none;
  }
}

.tb-on {
  display: none;
}
@media screen and (max-width: 1024px) {
  .tb-on {
    display: block;
  }
}

.sp-on {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp-on {
    display: block;
  }
}

.inner {
  width: 100%;
  max-width: calc(1100px + 10%);
  margin-inline: auto;
  padding: 0 5%;
}
@media screen and (max-width: 500px) {
  .inner {
    padding: 0 20px;
  }
}
@media screen and (max-width: 389px) {
  .inner {
    padding: 0 15px;
  }
}

.section_title {
  color: var(--top-green);
  text-align: center;
}
.section_title > .ja {
  margin: 0;
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  .section_title > .ja {
    font-size: max(28px, 28px + 12 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  .section_title > .ja {
    font-size: max(24px, 24px + 4 * (100vw - 320px) / 69);
  }
}
.section_title > .en {
  margin: 10px 0 0;
  font-family: Arial, sans-serif;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
@media screen and (max-width: 1439px) {
  .section_title > .en {
    font-size: max(16px, 16px + 8 * (100vw - 390px) / 1049);
  }
}

.section_title::after {
  display: block;
  width: 60px;
  height: 3px;
  margin: 14px auto 0;
  background: -webkit-gradient(linear, left top, right top, color-stop(50%, var(--top-green)), color-stop(50%, #c9a76d));
  background: -webkit-linear-gradient(left, var(--top-green) 50%, #c9a76d 50%);
  background: linear-gradient(90deg, var(--top-green) 50%, #c9a76d 50%);
  content: "";
}
@media screen and (max-width: 1439px) {
  .section_title::after {
    width: max(30px, 30px + 30 * (100vw - 390px) / 1049);
    height: max(2px, 2px + 1 * (100vw - 390px) / 1049);
    margin-top: max(8px, 8px + 6 * (100vw - 390px) / 1049);
  }
}

.page_btn {
  margin: 60px auto 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 1439px) {
  .page_btn {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
.page_btn a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 280px;
  height: 60px;
  padding: 0 32px;
  gap: 15px;
  border: 1px solid var(--top-green);
  background: #fff;
  color: var(--top-green);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1439px) {
  .page_btn a {
    height: max(55px, 55px + 5 * (100vw - 390px) / 1049);
    padding: 0 max(16px, 16px - 16 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 2 * (100vw - 390px) / 1049);
    gap: max(10px, 10px + 5 * (100vw - 390px) / 1049);
  }
}
.page_btn a img {
  width: 8.25px;
  height: 11.75px;
  -o-object-fit: contain;
     object-fit: contain;
  margin-top: 2px;
}

body.top {
  margin: 0;
  background: #fff;
  color: var(--top-green);
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  overflow-x: hidden;
}
body.top main {
  overflow-x: hidden;
}
body.top > main.top {
  overflow: visible;
}

.top .drawer-overlay {
  z-index: 100;
  background-color: rgba(0, 0, 0, 0.2);
}

main.top {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
main.top button,
main.top a {
  font: inherit;
}
main.top img {
  display: block;
  max-width: 100%;
}
main.top a {
  color: inherit;
  text-decoration: none;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  main.top a:hover {
    opacity: 0.7;
  }
}

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

/* fv */
.fv {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--header-height));
  height: calc(100svh - var(--header-height));
  margin: 0 auto;
  overflow: hidden;
  background-image: url("../img/fv_bg_img.webp");
  background-position: 80% center;
  background-size: cover;
}
@media screen and (max-width: 767px) {
  .fv {
    min-height: 640px;
    background-image: url("../img/fv_bg_img_sp.webp");
    background-position: center top;
  }
}
.fv .fv_inner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.fv .fv_inner .fv_copy {
  position: absolute;
  z-index: 2;
  top: 31.08%;
  left: 50%;
  width: min(760px, 60%);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  isolation: isolate;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .fv .fv_inner .fv_copy {
    top: 33.08%;
    width: 100%;
    padding: 0 20px;
  }
}
@media screen and (max-width: 389px) {
  .fv .fv_inner .fv_copy {
    padding: 0 15px;
  }
}
.fv .fv_inner .fv_copy h1 {
  margin: 0;
  font-size: 56px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_copy h1 {
    font-size: max(28px, 28px + 28 * (100vw - 390px) / 1049);
    line-height: max(1.45, 1.48 - 0.03 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  .fv .fv_inner .fv_copy h1 {
    font-size: max(24px, 24px + 4 * (100vw - 320px) / 69);
  }
}
.fv .fv_inner .fv_copy p {
  margin-top: 32px;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 2.1;
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_copy p {
    margin-top: max(0px, 0px + 32 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 6 * (100vw - 390px) / 1049);
  }
}
.fv .fv_inner .fv_copy::before {
  position: absolute;
  z-index: -1;
  top: calc(50% - 14.5px);
  left: 50%;
  width: 824px;
  height: 825px;
  border-radius: 50%;
  background: #fff;
  content: "";
  -webkit-filter: blur(125px);
          filter: blur(125px);
  opacity: 0.9;
  pointer-events: none;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_copy::before {
    top: calc(50% - max(0px, 14.5px * (100vw - 390px) / 1049));
    width: max(390px, 390px + 434 * (100vw - 390px) / 1049);
    height: max(390px, 390px + 435 * (100vw - 390px) / 1049);
    -webkit-filter: blur(max(85px, 85px + 40 * (100vw - 390px) / 1049));
            filter: blur(max(85px, 85px + 40 * (100vw - 390px) / 1049));
  }
}
.fv .fv_inner .fv_badge {
  position: absolute;
  z-index: 3;
  width: 180px;
  aspect-ratio: 1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  color: #fff;
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_badge {
    width: max(120px, 120px + 60 * (100vw - 390px) / 1049);
  }
}
.fv .fv_inner .fv_badge > div {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  text-align: center;
}
.fv .fv_inner .fv_badge strong {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_badge strong {
    font-size: max(14px, 14px + 6 * (100vw - 390px) / 1049);
  }
}
.fv .fv_inner .fv_badge strong small {
  font-size: 16px;
  font-weight: 700;
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_badge strong small {
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
.fv .fv_inner .fv_badge span {
  margin-top: 5px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_badge span {
    margin-top: max(4px, 4px + 1 * (100vw - 390px) / 1049);
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
.fv .fv_inner .fv_badge_green {
  top: calc(31.08% - 142px);
  left: calc(50% - 419px);
  background-image: url("../img/shape_bg_green.webp");
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_badge_green {
    top: calc(31.08% - max(95px, 95px + 47 * (100vw - 390px) / 1049));
    left: max(120px, 120px + 181 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  .fv .fv_inner .fv_badge_green {
    top: 63%;
    right: 5.13%;
    left: auto;
    background-image: url("../img/shape_bg_green_sp.webp");
  }
}
.fv .fv_inner .fv_badge_brown {
  top: 33.38%;
  left: calc(50% - 560px);
  background-image: url("../img/shape_bg_brown.webp");
}
@media screen and (max-width: 1439px) {
  .fv .fv_inner .fv_badge_brown {
    left: max(20px, 20px + 140 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  .fv .fv_inner .fv_badge_brown {
    top: 73%;
    right: calc(5.13% + max(120px, 120px + 60 * (100vw - 390px) / 1049));
    left: auto;
    background-image: url("../img/shape_bg_brown_sp.webp");
  }
}
.fv .fv_inner .fv_badge_brown span {
  margin-top: 10px;
}

/* /fv */
/* nav */
section.nav {
  height: 100px;
}
@media screen and (max-width: 1439px) {
  section.nav {
    height: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.nav {
    display: none;
  }
}
section.nav .inner {
  height: 100%;
}
section.nav .nav_list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  height: 100%;
  margin: 0 auto;
}
section.nav .nav_list li {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  padding: 0 40px;
  border-right: 1px solid rgba(67, 149, 137, 0.25);
}
@media screen and (max-width: 1439px) {
  section.nav .nav_list li {
    padding: 0 max(20px, 20px + 20 * (100vw - 768px) / 671);
  }
}
section.nav .nav_list li a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
  white-space: nowrap;
}
@media screen and (max-width: 1439px) {
  section.nav .nav_list li a {
    font-size: max(14px, 14px + 2 * (100vw - 768px) / 671);
  }
}
section.nav .nav_list li a span {
  margin-top: 4px;
  color: #659a99;
  font-family: Arial, sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.1em;
}
section.nav .nav_list li:first-child {
  border-left: 1px solid rgba(67, 149, 137, 0.25);
}

/* /nav */
/* banner */
section.banner_wrap {
  padding-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.banner_wrap {
    padding-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
section.banner_wrap .banner_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media screen and (max-width: 1439px) {
  section.banner_wrap .banner_list {
    gap: max(10px, 10px + 10 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.banner_wrap .banner_list {
    grid-template-columns: 1fr;
  }
}
section.banner_wrap .banner_list a,
section.banner_wrap .banner_list img {
  display: block;
  width: 100%;
}
section.banner_wrap .banner_list img {
  aspect-ratio: 540/128;
  -o-object-fit: cover;
     object-fit: cover;
}

/* /banner */
/* news */
section.news .news_tab {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.news .news_tab {
    gap: max(10px, 10px + 30 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
section.news .news_tab button {
  width: 100%;
  height: 61px;
  border: 1px solid #dedede;
  border-radius: 999px;
  background: #fff;
  color: rgba(62, 129, 127, 0.5);
  font-size: 20px;
  font-weight: 500;
  cursor: pointer;
}
@media screen and (max-width: 1439px) {
  section.news .news_tab button {
    height: max(40px, 40px + 21 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 6 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.news .news_tab button {
    font-size: max(12px, 12px + 2 * (100vw - 320px) / 69);
  }
}
section.news .news_tab button.is-active {
  border-color: var(--top-green);
  background: var(--top-green);
  color: #fff;
}
section.news .news_panel[hidden] {
  display: none;
}
section.news .news_list {
  margin-top: 40px;
}
@media screen and (max-width: 1439px) {
  section.news .news_list {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
section.news .news_list li {
  border-bottom: 1px solid #dedede;
  padding: 24px 0;
}
@media screen and (max-width: 767px) {
  section.news .news_list li {
    padding: 20px 0 12px;
  }
}
section.news .news_list li:first-child {
  padding-top: 0;
}
section.news .news_list li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
section.news .news_list li a {
  display: grid;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  grid-template-columns: 240px 1fr;
  gap: 40px;
}
@media screen and (max-width: 1439px) {
  section.news .news_list li a {
    grid-template-columns: max(180px, 180px + 60 * (100vw - 768px) / 671) 1fr;
    gap: max(12px, 12px + 28 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  section.news .news_list li a {
    grid-template-columns: 1fr;
    padding: 0;
  }
}
section.news .news_list li .img_wrap {
  aspect-ratio: 10/7;
  overflow: hidden;
}
section.news .news_list li .img_wrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.news .news_list li .text_wrap h3 {
  display: -webkit-box;
  overflow: hidden;
  margin: 10px 0 0;
  color: #565351;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 1439px) {
  section.news .news_list li .text_wrap h3 {
    font-size: max(16px, 16px + 2 * (100vw - 390px) / 1049);
  }
}
section.news .news_list li .text_wrap > p {
  display: -webkit-box;
  overflow: hidden;
  margin: 24px 0 0;
  color: #666;
  font-size: 16px;
  font-weight: 400;
  line-height: 30px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 1439px) {
  section.news .news_list li .text_wrap > p {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.news .news_list li .text_wrap > p {
    -webkit-line-clamp: 4;
  }
}
section.news .news_list li .news_meta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  color: var(--top-green);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
section.news .news_list li .news_meta span {
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--top-green);
  color: #fff;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
}
section.news .news_empty {
  margin: 40px 0 0;
  color: #565351;
  text-align: center;
}
section.news .news_more {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 20px;
  width: 280px;
  height: 60px;
  margin: 60px auto 0;
  border: 1px solid var(--top-green);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1439px) {
  section.news .news_more {
    gap: max(8px, 8px + 12 * (100vw - 390px) / 1049);
    height: max(55px, 55px + 5 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 2 * (100vw - 390px) / 1049);
  }
}
section.news .news_more img {
  width: 6px;
  height: 10px;
  -o-object-fit: contain;
     object-fit: contain;
}

/* /news */
/* feature */
section.feature {
  position: relative;
  overflow: hidden;
  background-color: #f6fafa;
}
section.feature .feature_intro {
  position: relative;
  z-index: 1;
}
section.feature .feature_copy {
  position: relative;
  width: 690px;
  max-width: 100%;
  margin: 60px auto 0;
  padding: 24px 60px;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_copy {
    width: max(350px, 350px + 340 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
    padding: 24px max(20px, 20px + 40 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_copy h3 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_copy h3 {
    font-size: max(18px, 18px + 14 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_copy::before,
section.feature .feature_copy::after {
  position: absolute;
  width: 60px;
  height: 60px;
  background: url("../img/feature_corner.svg") center/contain no-repeat;
  content: "";
}
@media screen and (max-width: 1439px) {
  section.feature .feature_copy::before,
  section.feature .feature_copy::after {
    width: max(40px, 40px + 20 * (100vw - 390px) / 1049);
    height: max(40px, 40px + 20 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_copy::before {
  top: 0;
  left: 0;
}
section.feature .feature_copy::after {
  right: 0;
  bottom: 0;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
section.feature .feature_lead {
  margin: 24px 0 0;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_lead {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 8 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_no {
  width: 234px;
  margin-inline: auto;
  font-family: Arial, sans-serif;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_no {
    width: max(160px, 160px + 74 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_no > p {
  margin: 0;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_no > p {
    font-size: max(14px, 14px + 10 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_no .feature_no_num {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 138px;
  font-size: 120px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_no .feature_no_num {
    height: max(92px, 92px + 46 * (100vw - 390px) / 1049);
    font-size: max(80px, 80px + 40 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_no .feature_no_num span {
  color: var(--top-green-light);
}
section.feature .feature_no .feature_no_num strong {
  color: var(--top-green);
  font-weight: 400;
}
section.feature .feature_no .feature_no_num::before,
section.feature .feature_no .feature_no_num::after {
  position: absolute;
  top: 50%;
  width: 30px;
  height: 2px;
  background: var(--top-green);
  content: "";
}
@media screen and (max-width: 1439px) {
  section.feature .feature_no .feature_no_num::before,
  section.feature .feature_no .feature_no_num::after {
    width: max(20px, 20px + 10 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_no .feature_no_num::before {
  left: 0;
}
section.feature .feature_no .feature_no_num::after {
  right: 0;
}
section.feature .feature_first {
  position: relative;
  z-index: 1;
  width: 100%;
  margin-top: 100px;
  padding: 100px 0;
  background: #fff url("../img/feature_bg01.webp") center/cover no-repeat;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_first {
    margin-top: max(50px, 50px + 50 * (100vw - 390px) / 1049);
    padding: max(50px, 50px + 50 * (100vw - 390px) / 1049) 0;
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_first {
    background-image: url("../img/feature_bg01_sp.webp");
  }
}
section.feature .feature_first h3 {
  margin: 24px 0 0;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_first h3 {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
    font-size: max(20px, 20px + 12 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_first h3 {
    line-height: 1.6;
    padding: 0 20px;
  }
}
@media screen and (max-width: 389px) {
  section.feature .feature_first h3 {
    padding: 0 15px;
  }
}
section.feature .feature_first > p {
  margin: 24px 0 0;
  color: #565351;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2.1;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_first > p {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_first > p {
    padding: 0 20px;
  }
}
@media screen and (max-width: 389px) {
  section.feature .feature_first > p {
    padding: 0 15px;
  }
}
section.feature .feature_first .feature_slider {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_first .feature_slider {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_first .feature_slider .splide__slide {
  width: 340px;
  height: 340px;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_first .feature_slider .splide__slide {
    width: max(200px, 200px + 140 * (100vw - 390px) / 1049);
    height: max(200px, 200px + 140 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_first .feature_slider .splide__slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.feature .feature_item {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 60px;
  width: calc(100% - max(5%, (100% - 1100px) / 2));
  margin-top: 100px;
  max-width: 1920px;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_item {
    margin-top: max(50px, 50px + 50 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    width: 100%;
  }
}
section.feature .feature_item .img_wrap {
  position: relative;
  aspect-ratio: 600/680;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item .img_wrap {
    width: calc(100% - 20px);
    aspect-ratio: 370/350;
  }
}
section.feature .feature_item .img_wrap picture {
  display: block;
  width: 100%;
  height: 100%;
}
section.feature .feature_item .img_wrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.feature .feature_item .text_wrap {
  text-align: center;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item .text_wrap {
    width: 100%;
    padding-top: 0;
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item .text_wrap .feature_no {
    margin-top: 30px;
  }
}
section.feature .feature_item .text_wrap h3 {
  margin: 24px 0 0;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_item .text_wrap h3 {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
    font-size: max(20px, 20px + 12 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item .text_wrap h3 {
    line-height: 1.6;
    padding: 0 20px;
  }
}
@media screen and (max-width: 389px) {
  section.feature .feature_item .text_wrap h3 {
    padding: 0 15px;
    font-size: max(18px, 18px + 2 * (100vw - 320px) / 69);
  }
}
section.feature .feature_item .text_wrap > p {
  margin: 40px 0 0;
  color: #565351;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2.1;
  text-align: left;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_item .text_wrap > p {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item .text_wrap > p {
    width: 100%;
    padding: 0 20px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 389px) {
  section.feature .feature_item .text_wrap > p {
    padding: 0 15px;
  }
}
section.feature .feature_item .feature_badge {
  position: absolute;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 200px;
  aspect-ratio: 1;
  background: url("../img/shape_bg_brown.webp") center/contain no-repeat;
  color: #fff;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_item .feature_badge {
    width: max(120px, 120px + 80 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item .feature_badge {
    background-image: url("../img/shape_bg_brown_sp.webp");
  }
}
section.feature .feature_item .feature_badge span {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_item .feature_badge span {
    font-size: max(12px, 12px + 8 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_item .feature_badge strong {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_item .feature_badge strong {
    font-size: max(14px, 14px + 10 * (100vw - 390px) / 1049);
  }
}
section.feature .feature_item_left {
  grid-template-columns: minmax(0, 600fr) minmax(0, 610fr);
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item_left {
    margin-right: 0;
  }
}
section.feature .feature_item_right {
  grid-template-columns: minmax(0, 610fr) minmax(0, 600fr);
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item_right {
    margin-left: 0;
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item02 .img_wrap {
    margin-right: auto;
  }
}
section.feature .feature_item02 .feature_badge {
  right: 20px;
  bottom: 20px;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item02 .feature_badge {
    right: 15px;
    bottom: 15px;
  }
}
section.feature .feature_item02 .text_wrap {
  padding-top: 96px;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item02 .text_wrap {
    padding-top: 0;
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item03 .img_wrap {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1;
    margin-left: auto;
  }
}
section.feature .feature_item03 .feature_badge {
  bottom: 20px;
  left: 20px;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item03 .feature_badge {
    right: 15px;
    bottom: 15px;
    left: auto;
  }
}
section.feature .feature_item03 .text_wrap {
  padding-top: 33px;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item03 .text_wrap {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2;
    padding-top: 0;
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item04 .img_wrap {
    margin-right: auto;
  }
}
section.feature .feature_item04 .text_wrap {
  padding-top: 45px;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item04 .text_wrap {
    padding-top: 0;
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_item05 .img_wrap {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1;
    margin-left: auto;
  }
}
section.feature .feature_item05 .text_wrap {
  padding-top: 96px;
}
@media screen and (max-width: 767px) {
  section.feature .feature_item05 .text_wrap {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2;
    padding-top: 0;
  }
}
section.feature .feature_qualification {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 40px;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_qualification {
    gap: max(10px, 10px + 10 * (100vw - 390px) / 1049);
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 1024px) {
  section.feature .feature_qualification {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_qualification {
    grid-template-columns: repeat(2, 1fr);
  }
}
section.feature .feature_qualification li {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 80px;
  background: var(--top-green) url("../img/qualification_bg.svg") center/100% 100% no-repeat;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.8;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.feature .feature_qualification li {
    height: max(60px, 60px + 20 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.feature .feature_qualification li {
    line-height: 1.45;
  }
}
@media screen and (max-width: 389px) {
  section.feature .feature_qualification li {
    font-size: max(12px, 12px + 2 * (100vw - 320px) / 69);
  }
}
section.feature .feature_qualification li::before {
  position: absolute;
  inset: 5px;
  border: 1px solid #fff;
  content: "";
  pointer-events: none;
}

section.feature::before,
section.feature::after {
  position: absolute;
  z-index: 0;
  width: 1250px;
  height: 4000px;
  background: rgba(235, 242, 242, 0.6);
  content: "";
  pointer-events: none;
}

section.feature::before {
  top: -507.734px;
  left: 175.551px;
  -webkit-transform: rotate(-60deg);
          transform: rotate(-60deg);
}
@media screen and (max-width: 767px) {
  section.feature::before {
    top: -941.447px;
    left: -71.548px;
    width: 550px;
    height: 3025.205px;
    -webkit-transform: rotate(-50.41deg);
            transform: rotate(-50.41deg);
  }
}

section.feature::after {
  top: 1861.266px;
  left: 175.551px;
  -webkit-transform: rotate(-120deg) scaleY(-1);
          transform: rotate(-120deg) scaleY(-1);
}
@media screen and (max-width: 767px) {
  section.feature::after {
    top: 689.148px;
    left: 28.642px;
    width: 680px;
    height: 3025.205px;
    -webkit-transform: rotate(-120deg) scaleY(-1);
            transform: rotate(-120deg) scaleY(-1);
  }
}

section.feature > .feature_bg {
  display: none;
}
@media screen and (max-width: 767px) {
  section.feature > .feature_bg {
    position: absolute;
    z-index: 0;
    display: block;
    top: 2471.273px;
    left: -35.088px;
    width: 550px;
    height: 3025.205px;
    -webkit-transform: rotate(-50.41deg);
            transform: rotate(-50.41deg);
    background: rgba(235, 242, 242, 0.6);
    pointer-events: none;
  }
}

/* /feature */
/* specialized treatment */
section.specialized_treatment {
  padding: 100px 0;
  background: #fff url("../img/specialized-treatment_bg.webp") center top/100% 100% no-repeat;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment {
    padding: max(50px, 50px + 50 * (100vw - 390px) / 1049) 0;
  }
}
@media screen and (max-width: 767px) {
  section.specialized_treatment {
    background-image: url("../img/specialized-treatment_bg_sp.webp");
  }
}
section.specialized_treatment .treatment_intro {
  display: grid;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  grid-template-columns: 580px 1fr;
  gap: 40px;
  margin: 60px auto 0;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro {
    grid-template-columns: max(350px, 350px + 230 * (100vw - 768px) / 671) 1fr;
    gap: max(20px, 20px + 20 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_intro {
    grid-template-columns: 1fr;
  }
}
section.specialized_treatment .treatment_intro .treatment_visual {
  position: relative;
  width: 580px;
  height: 530px;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual {
    width: max(350px, 350px + 230 * (100vw - 768px) / 671);
    height: max(338px, 338px + 192 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_intro .treatment_visual {
    margin-inline: auto;
  }
}
@media screen and (max-width: 389px) {
  section.specialized_treatment .treatment_intro .treatment_visual {
    width: max(290px, 290px + 60 * (100vw - 320px) / 69);
    height: max(265px, 265px + 73 * (100vw - 320px) / 69);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle {
  position: absolute;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  color: #fff;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle {
    width: max(200px, 200px + 120 * (100vw - 768px) / 671);
    height: max(200px, 200px + 120 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 389px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle {
    width: max(160px, 160px + 40 * (100vw - 320px) / 69);
    height: max(160px, 160px + 40 * (100vw - 320px) / 69);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle p {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle p {
    font-size: max(20px, 20px + 12 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 389px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle p {
    font-size: max(16px, 16px + 4 * (100vw - 320px) / 69);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle span {
  margin-top: 10px;
  font-family: Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.1;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle span {
    font-size: max(12px, 12px + 4 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 389px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle span {
    font-size: max(10px, 10px + 2 * (100vw - 320px) / 69);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle.gastroenterology {
  z-index: 3;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  padding-top: 85px;
  background: rgba(67, 149, 137, 0.8);
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle.gastroenterology {
    padding-top: max(50px, 50px + 35 * (100vw - 768px) / 671);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle.hematology {
  z-index: 1;
  bottom: 0;
  left: 0;
  padding-top: 123px;
  background: rgba(89, 173, 154, 0.8);
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle.hematology {
    padding-top: max(75px, 75px + 48 * (100vw - 768px) / 671);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle.homecare {
  z-index: 2;
  bottom: 0;
  right: 0;
  padding-top: 123px;
  background: rgba(200, 172, 123, 0.8);
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .treatment_circle.homecare {
    padding-top: max(75px, 75px + 48 * (100vw - 768px) / 671);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .logo_wrap {
  z-index: 4;
  position: absolute;
  top: 175px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  -webkit-box-shadow: 10px 10px 20px rgba(51, 51, 51, 0.1);
          box-shadow: 10px 10px 20px rgba(51, 51, 51, 0.1);
  background: #fff;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .logo_wrap {
    top: max(100px, 100px + 75 * (100vw - 768px) / 671);
    width: max(90px, 90px + 90 * (100vw - 768px) / 671);
    height: max(90px, 90px + 90 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_intro .treatment_visual .logo_wrap {
    -webkit-box-shadow: 5px 5px 10px rgba(51, 51, 51, 0.1);
            box-shadow: 5px 5px 10px rgba(51, 51, 51, 0.1);
  }
}
section.specialized_treatment .treatment_intro .treatment_visual .logo_wrap img {
  width: 110px;
  height: 110px;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro .treatment_visual .logo_wrap img {
    width: max(65px, 65px + 45 * (100vw - 390px) / 1049);
    height: max(65px, 65px + 45 * (100vw - 390px) / 1049);
  }
}
section.specialized_treatment .treatment_intro > .text_wrap {
  color: var(--top-green);
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_intro > .text_wrap {
    text-align: center;
  }
}
section.specialized_treatment .treatment_intro > .text_wrap h3 {
  margin: 0;
  font-size: 0;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
section.specialized_treatment .treatment_intro > .text_wrap h3 span {
  font-size: 32px;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro > .text_wrap h3 span {
    font-size: max(24px, 24px + 8 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.specialized_treatment .treatment_intro > .text_wrap h3 span {
    font-size: max(20px, 20px + 4 * (100vw - 320px) / 69);
  }
}
section.specialized_treatment .treatment_intro > .text_wrap h3 strong {
  font-size: 40px;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro > .text_wrap h3 strong {
    font-size: max(32px, 32px + 8 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.specialized_treatment .treatment_intro > .text_wrap h3 strong {
    font-size: max(24px, 24px + 8 * (100vw - 320px) / 69);
  }
}
section.specialized_treatment .treatment_intro > .text_wrap p {
  margin: 32px 0 0;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_intro > .text_wrap p {
    margin-top: max(16px, 16px + 16 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 8 * (100vw - 390px) / 1049);
  }
}
section.specialized_treatment .treatment_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin: 40px auto 0;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_list {
    gap: max(15px, 15px + 15 * (100vw - 390px) / 1049);
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_list {
    grid-template-columns: 1fr;
  }
}
section.specialized_treatment .treatment_list .treatment_card {
  position: relative;
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  gap: 20px;
  padding: 25px;
  border: 1px solid currentColor;
  -webkit-box-shadow: 0 0 20px rgba(51, 51, 51, 0.05);
          box-shadow: 0 0 20px rgba(51, 51, 51, 0.05);
  background: rgba(255, 255, 255, 0.4);
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_list .treatment_card {
    padding: max(20px, 20px + 5 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_list .treatment_card {
    grid-template-columns: 1fr;
  }
}
section.specialized_treatment .treatment_list .treatment_card .title_wrap {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  border-right: 1px solid currentColor;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
  padding-right: 20px;
  width: 45px;
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_list .treatment_card .title_wrap {
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    width: auto;
    border-right: 0;
    border-bottom: 1px solid currentColor;
    padding-bottom: 10px;
  }
}
section.specialized_treatment .treatment_list .treatment_card .title_wrap span {
  font-family: Arial, sans-serif;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1;
}
section.specialized_treatment .treatment_list .treatment_card .title_wrap h3 {
  margin: 4px 0 0;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.1;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_list .treatment_card .title_wrap h3 {
    margin: 0 0 0 5px;
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
    letter-spacing: 0.05em;
  }
}
section.specialized_treatment .treatment_list .treatment_card > .text_wrap {
  color: #565351;
}
section.specialized_treatment .treatment_list .treatment_card > .text_wrap p {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.6;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_list .treatment_card > .text_wrap p {
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
section.specialized_treatment .treatment_list .treatment_card > .text_wrap .treatment_link {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 24px;
  width: 180px;
  height: 40px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 24px;
}
@media screen and (max-width: 1439px) {
  section.specialized_treatment .treatment_list .treatment_card > .text_wrap .treatment_link {
    gap: max(12px, 12px + 12 * (100vw - 390px) / 1049);
    height: max(35px, 35px + 5 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
    margin-top: max(20px, 20px + 4 * (100vw - 390px) / 1049);
  }
}
section.specialized_treatment .treatment_list .treatment_card > .text_wrap .treatment_link img {
  width: 6px;
  height: 10px;
  margin-top: 2px;
}
section.specialized_treatment .treatment_list .treatment_card .treatment_link,
section.specialized_treatment .treatment_list .treatment_card .treatment_link:visited {
  color: #fff;
}
section.specialized_treatment .treatment_list .treatment_card.gastroenterology {
  grid-column: 1/-1;
  color: var(--top-green);
}
section.specialized_treatment .treatment_list .treatment_card.gastroenterology .treatment_link {
  background: var(--top-green);
}
@media screen and (max-width: 767px) {
  section.specialized_treatment .treatment_list .treatment_card.gastroenterology {
    grid-column: auto;
  }
}
section.specialized_treatment .treatment_list .treatment_card.hematology {
  color: var(--top-green-light);
}
section.specialized_treatment .treatment_list .treatment_card.hematology .treatment_link {
  background: var(--top-green-light);
}
section.specialized_treatment .treatment_list .treatment_card.homecare {
  color: #c8ac7b;
}
section.specialized_treatment .treatment_list .treatment_card.homecare .treatment_link {
  background: #c8ac7b;
}

/* /specialized treatment */
/* doctor */
section.doctor {
  background-color: #ebf2f2;
  background-image: url("../img/doctor_bg.webp");
  background-position: center top;
  background-size: cover;
}
@media screen and (max-width: 767px) {
  section.doctor {
    background-image: url("../img/doctor_bg_sp.webp");
  }
}
section.doctor .doctor_main {
  display: grid;
  grid-template-columns: 500px 1fr;
  gap: 40px;
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main {
    grid-template-columns: max(300px, 300px + 200 * (100vw - 768px) / 671) 1fr;
    margin-top: max(21px, 21px + 39 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main {
    grid-template-columns: 1fr;
  }
}
section.doctor .doctor_main .doctor_profile {
  position: relative;
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main .doctor_profile {
    width: max(250px, 250px + 50 * (100vw - 390px) / 377);
    margin-inline: auto;
  }
}
@media screen and (max-width: 500px) {
  section.doctor .doctor_main .doctor_profile {
    margin-inline: 0;
  }
}
@media screen and (max-width: 389px) {
  section.doctor .doctor_main .doctor_profile {
    width: max(200px, 200px + 50 * (100vw - 320px) / 69);
  }
}
section.doctor .doctor_main .doctor_profile .img_wrap {
  overflow: hidden;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 165px), calc(100% - 165px) 100%, 0 100%);
          clip-path: polygon(0 0, 100% 0, 100% calc(100% - 165px), calc(100% - 165px) 100%, 0 100%);
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_profile .img_wrap {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - max(95px, 95px + 70 * (100vw - 390px) / 1049)), calc(100% - max(95px, 95px + 70 * (100vw - 390px) / 1049)) 100%, 0 100%);
            clip-path: polygon(0 0, 100% 0, 100% calc(100% - max(95px, 95px + 70 * (100vw - 390px) / 1049)), calc(100% - max(95px, 95px + 70 * (100vw - 390px) / 1049)) 100%, 0 100%);
  }
}
section.doctor .doctor_main .doctor_profile .img_wrap picture,
section.doctor .doctor_main .doctor_profile .img_wrap img {
  width: 100%;
  height: 100%;
}
section.doctor .doctor_main .doctor_profile .img_wrap img {
  -o-object-fit: cover;
     object-fit: cover;
}
section.doctor .doctor_main .doctor_profile .doctor_name {
  color: var(--top-green);
  font-weight: 500;
  letter-spacing: 0.05em;
  position: absolute;
  right: 70px;
  bottom: 20px;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_profile .doctor_name {
    right: max(42px, 42px + 28 * (100vw - 390px) / 1049);
    bottom: max(-36px, -36px + 56 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_main .doctor_profile .doctor_name > p {
  margin: 0 0 4px;
  font-size: 16px;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_profile .doctor_name > p {
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main .doctor_profile .doctor_name > p {
    margin-bottom: 5px;
  }
}
section.doctor .doctor_main .doctor_profile .doctor_name > div {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
  -webkit-align-items: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 10px;
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main .doctor_profile .doctor_name > div {
    display: block;
  }
}
section.doctor .doctor_main .doctor_profile .doctor_name > div strong {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.45;
  white-space: nowrap;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_profile .doctor_name > div strong {
    font-size: max(18px, 18px + 6 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_main .doctor_profile .doctor_name > div .name_en {
  color: var(--top-green-light);
  font-family: Arial, sans-serif;
  text-transform: uppercase;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_profile .doctor_name > div .name_en {
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main .doctor_profile .doctor_name > div .name_en {
    display: block;
    margin-top: 5px;
  }
}
section.doctor .doctor_main .doctor_copy {
  margin-top: 40px;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_copy {
    margin-top: max(10px, 10px + 30 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_main .doctor_copy h3 {
  margin: 0;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--top-green);
  color: var(--top-green);
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_copy h3 {
    padding-bottom: max(10px, 10px + 14 * (100vw - 390px) / 1049);
    font-size: max(20px, 20px + 12 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main .doctor_copy h3 {
    font-size: max(20px, 20px + 12 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.doctor .doctor_main .doctor_copy h3 {
    font-size: max(18px, 18px + 2 * (100vw - 320px) / 69);
  }
}
section.doctor .doctor_main .doctor_copy p {
  margin: 16px 0 0;
  color: #565351;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_main .doctor_copy p {
    margin-top: max(10px, 10px + 6 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 10 * (100vw - 768px) / 671);
  }
}
@media screen and (max-width: 767px) {
  section.doctor .doctor_main .doctor_copy p {
    font-size: max(14px, 14px + 10 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_qualification {
  margin-top: 40px;
  padding: 15px;
  background: #fff;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
    padding: max(10px, 10px + 5 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_qualification .qualification_wrap {
  height: 100%;
  padding: 40px;
  border: 1px solid #bd9e76;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification .qualification_wrap {
    padding: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_qualification .qualification_wrap h3 {
  margin: 0;
  color: #bd9e76;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.8;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification .qualification_wrap h3 {
    font-size: max(16px, 16px + 8 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.doctor .doctor_qualification .qualification_wrap h3 {
    font-size: max(14px, 14px + 2 * (100vw - 320px) / 69);
  }
}
section.doctor .doctor_qualification .qualification_wrap h3::after {
  display: block;
  width: 40px;
  height: 2px;
  margin: 10px auto 0;
  background: #bd9e76;
  content: "";
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification .qualification_wrap h3::after {
    width: max(30px, 30px + 10 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_qualification .qualification_wrap ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 20px;
  margin: 24px 0 0;
  max-width: 880px;
  margin-inline: auto;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification .qualification_wrap ul {
    gap: max(10px, 10px + 10 * (100vw - 390px) / 1049);
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_qualification .qualification_wrap ul li {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  margin: 0;
  color: #565351;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification .qualification_wrap ul li {
    gap: max(5px, 5px + 3 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 6 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_qualification .qualification_wrap ul li::before {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #bd9e76;
  content: "";
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_qualification .qualification_wrap ul li::before {
    width: max(6px, 6px + 4 * (100vw - 390px) / 1049);
    height: max(6px, 6px + 4 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_message {
  margin-top: 40px;
  color: #565351;
  font-size: 16px;
  font-weight: 400;
  line-height: 2.1;
}
@media screen and (max-width: 1439px) {
  section.doctor .doctor_message {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
section.doctor .doctor_message p {
  margin: 0;
}

/* /doctor */
/* promise */
section.promise .promise_lead {
  width: 100%;
  margin: 60px auto 0;
  color: #565351;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.promise .promise_lead {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.promise .promise_lead {
    text-align: left;
  }
}
section.promise .promise_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px 30px;
  width: 100%;
  margin: 40px 0 0;
}
@media screen and (max-width: 1439px) {
  section.promise .promise_list {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
    gap: 20px, max(20px, 20px + 10 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 1024px) {
  section.promise .promise_list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 767px) {
  section.promise .promise_list {
    grid-template-columns: 1fr;
  }
}
section.promise .promise_list li {
  position: relative;
  float: none;
  width: 100%;
  margin: 0;
  padding: 20px 30px 40px;
  overflow: hidden;
  border: 1px solid #d8e6e7;
  letter-spacing: 0.07em;
  list-style: none;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}
@media screen and (max-width: 1439px) {
  section.promise .promise_list li {
    padding: 20px max(20px, 20px + 10 * (100vw - 390px) / 1049) max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
section.promise .promise_list li a {
  display: grid;
  grid-template-rows: 120px 1fr;
  width: 100%;
  height: 100%;
  color: #333;
}
@media screen and (max-width: 767px) {
  section.promise .promise_list li a {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }
}
section.promise .promise_list li a .img_wrap {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 767px) {
  section.promise .promise_list li a .img_wrap {
    margin-bottom: 17px;
  }
}
section.promise .promise_list li a .img_wrap img {
  width: 100px;
  height: 100px;
  -o-object-fit: contain;
     object-fit: contain;
}
section.promise .promise_list li a .text_wrap h3 {
  margin: 0 0 15px;
  color: var(--top-green);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
}
@media screen and (max-width: 767px) {
  section.promise .promise_list li a .text_wrap h3 {
    margin-bottom: 10px;
    font-size: 16px;
  }
}
section.promise .promise_list li a .text_wrap p {
  margin: 0;
  color: #666;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
  text-align: left;
}
@media screen and (max-width: 767px) {
  section.promise .promise_list li a .text_wrap p {
    font-size: 12px;
  }
}
section.promise .promise_list li:hover {
  background: #f4f8f8;
}

/* /promise */
/* external banner */
section.external_banner {
  background: #f6fafa;
}
section.external_banner .banner_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1439px) {
  section.external_banner .banner_list {
    gap: max(15px, 15px + 10 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.external_banner .banner_list {
    grid-template-columns: 1fr;
  }
}
section.external_banner .banner_list li {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
section.external_banner .banner_list li a {
  display: block;
  width: 100%;
}
section.external_banner .banner_list li a img {
  width: 100%;
  aspect-ratio: 350/125;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  section.external_banner .banner_list li a:hover img {
    opacity: 0.7;
  }
}

/* /external banner */
/* medical */
section.medical .section_title {
  margin: 0 auto;
}
section.medical .medical_list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  width: 100%;
  height: 284px;
  margin: 60px 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1439px) {
  section.medical .medical_list {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.medical .medical_list {
    grid-template-columns: 1fr;
    gap: 4px;
    height: auto;
  }
}
section.medical .medical_list li {
  min-width: 0;
  height: 100%;
  margin: 0;
  padding: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  list-style: none;
}
@media screen and (max-width: 767px) {
  section.medical .medical_list li {
    height: 146px;
  }
}
section.medical .medical_list li a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  border-left: 1px solid #fff;
  color: #fff;
  text-align: center;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}
@media screen and (max-width: 767px) {
  section.medical .medical_list li a {
    border-left: 0;
  }
}
section.medical .medical_list li a h3 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.medical .medical_list li a h3 {
    font-size: max(18px, 18px + 2 * (100vw - 390px) / 1049);
  }
}
section.medical .medical_list li a h3 span {
  display: block;
  margin-top: 8px;
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.5;
}
@media screen and (max-width: 1439px) {
  section.medical .medical_list li a h3 span {
    margin-top: max(6px, 6px + 2 * (100vw - 390px) / 1049);
    font-size: max(8px, 9px - 1 * (100vw - 390px) / 1049);
  }
}
section.medical .medical_list li:first-child a {
  border-left: 0;
}
section.medical .medical_list li.general {
  background-image: url("/img/service_general_bg.jpg");
}
section.medical .medical_list li.general a {
  background-color: rgba(100, 157, 180, 0.4);
}
section.medical .medical_list li.gastroenterology {
  background-image: url("/img/service_gastroenterology_bg.jpg");
}
section.medical .medical_list li.gastroenterology a {
  background-color: rgba(67, 149, 137, 0.4);
}
section.medical .medical_list li.endoscope {
  background-image: url("/img/service_endoscope_bg.jpg");
}
section.medical .medical_list li.endoscope a {
  background-color: rgba(180, 147, 100, 0.4);
}
section.medical .medical_list li.hematology {
  background-image: url("/img/service_hematology_bg.jpg");
}
section.medical .medical_list li.hematology a {
  background-color: rgba(96, 90, 164, 0.4);
}
section.medical .medical_list li.visit {
  background-image: url("/img/service_visit_bg.jpg");
}
section.medical .medical_list li.visit a {
  background-color: rgba(212, 167, 184, 0.4);
}
section.medical .medical_list li.nursing {
  background-image: url("/img/service_nursing_bg.jpg");
}
section.medical .medical_list li.nursing a {
  background-color: rgba(153, 152, 152, 0.4);
}
@media (hover: hover) and (pointer: fine) {
  section.medical .medical_list li.general a:hover {
    background-color: rgba(100, 157, 180, 0.55);
  }
  section.medical .medical_list li.gastroenterology a:hover {
    background-color: rgba(67, 149, 137, 0.55);
  }
  section.medical .medical_list li.endoscope a:hover {
    background-color: rgba(180, 147, 100, 0.55);
  }
  section.medical .medical_list li.hematology a:hover {
    background-color: rgba(96, 90, 164, 0.55);
  }
  section.medical .medical_list li.visit a:hover {
    background-color: rgba(174, 125, 144, 0.55);
  }
  section.medical .medical_list li.nursing a:hover {
    background-color: rgba(97, 96, 96, 0.55);
  }
}

/* /medical */
/* medical banner */
section.medical_banner .banner_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1439px) {
  section.medical_banner .banner_list {
    gap: max(15px, 15px + 25 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.medical_banner .banner_list {
    grid-template-columns: 1fr;
  }
}
section.medical_banner .banner_list li {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
section.medical_banner .banner_list li a {
  display: block;
  width: 100%;
}
section.medical_banner .banner_list li a img {
  width: 100%;
  aspect-ratio: 15/4;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (max-width: 767px) {
  section.medical_banner .banner_list li.sleep {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1;
  }
}
@media screen and (max-width: 767px) {
  section.medical_banner .banner_list li.ibd {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2;
  }
}
@media screen and (max-width: 767px) {
  section.medical_banner .banner_list li.checkup {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3;
  }
}
@media screen and (max-width: 767px) {
  section.medical_banner .banner_list li.nov {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4;
  }
}
@media (hover: hover) and (pointer: fine) {
  section.medical_banner .banner_list li a:hover img {
    opacity: 0.7;
  }
}

/* /medical banner */
/* access */
section.access {
  background: #f6fafa;
}
section.access .access_wrap {
  display: grid;
  grid-template-columns: 500px 1fr;
  gap: 40px;
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap {
    grid-template-columns: max(400px, 400px + 100 * (100vw - 1025px) / 414) 1fr;
    gap: max(20px, 20px + 20 * (100vw - 768px) / 671);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 1024px) {
  section.access .access_wrap {
    grid-template-columns: max(300px, 300px + 50 * (100vw - 768px) / 256) 1fr;
  }
}
@media screen and (max-width: 767px) {
  section.access .access_wrap {
    grid-template-columns: 1fr;
  }
}
section.access .access_wrap .info_wrap {
  min-width: 0;
}
section.access .access_wrap .info_wrap .logo_wrap img {
  width: 400px;
  height: 89px;
  margin: 0 auto;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .logo_wrap img {
    width: max(280px, 280px + 120 * (100vw - 390px) / 1049);
    height: max(62px, 62px + 27 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .info_wrap .logo_wrap p {
  margin: 16px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.45;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .logo_wrap p {
    margin-top: max(10px, 10px + 6 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .info_wrap .contact_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 40px;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .contact_wrap {
    gap: max(10px, 10px + 10 * (100vw - 390px) / 1049);
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 1024px) {
  section.access .access_wrap .info_wrap .contact_wrap {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 767px) {
  section.access .access_wrap .info_wrap .contact_wrap {
    grid-template-columns: repeat(2, 1fr);
  }
}
section.access .access_wrap .info_wrap .contact_wrap a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 0;
  height: 100%;
}
section.access .access_wrap .info_wrap .contact_wrap a span {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 4px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .contact_wrap a span {
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .info_wrap .contact_wrap a strong {
  font-weight: 500;
  line-height: 1.45;
}
section.access .access_wrap .info_wrap .contact_wrap a.tel {
  border-top: 1px solid var(--top-green);
  border-bottom: 1px solid var(--top-green);
  padding: 10px 0;
}
section.access .access_wrap .info_wrap .contact_wrap a.tel span img {
  width: 12px;
  height: 15px;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .contact_wrap a.tel span img {
    width: max(10px, 10px + 2 * (100vw - 390px) / 1049);
    height: max(12.5px, 12.5px + 2.5 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .info_wrap .contact_wrap a.tel strong {
  font-size: 24px;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .contact_wrap a.tel strong {
    font-size: max(16px, 16px + 8 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.access .access_wrap .info_wrap .contact_wrap a.tel strong {
    font-size: max(14px, 14px + 2 * (100vw - 320px) / 69);
  }
}
section.access .access_wrap .info_wrap .contact_wrap a.reserve {
  background: var(--top-green-light);
  color: #fff;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  padding: 11px 0;
}
section.access .access_wrap .info_wrap .contact_wrap a.reserve span img {
  width: 15px;
  height: 15px;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .contact_wrap a.reserve span img {
    width: max(12.5px, 12.5px + 2.5 * (100vw - 390px) / 1049);
    height: max(12.5px, 12.5px + 2.5 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .info_wrap .contact_wrap a.reserve strong {
  font-size: 20px;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .info_wrap .contact_wrap a.reserve strong {
    font-size: max(15px, 15px + 5 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.access .access_wrap .info_wrap .contact_wrap a.reserve strong {
    font-size: max(12px, 12px + 3 * (100vw - 320px) / 69);
  }
}
section.access .access_wrap .schedule_wrap .schedule {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--top-green);
  font-size: 16px;
  font-weight: 700;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .schedule {
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 389px) {
  section.access .access_wrap .schedule_wrap .schedule {
    font-size: max(12px, 12px + 2 * (100vw - 320px) / 69);
  }
}
section.access .access_wrap .schedule_wrap .schedule .time_col {
  width: 24%;
}
@media screen and (max-width: 767px) {
  section.access .access_wrap .schedule_wrap .schedule .time_col {
    width: 22.8%;
  }
}
section.access .access_wrap .schedule_wrap .schedule th,
section.access .access_wrap .schedule_wrap .schedule td {
  border: 1px solid #dedede;
  padding: 0;
  text-align: center;
  vertical-align: middle;
}
section.access .access_wrap .schedule_wrap .schedule thead {
  height: 60px;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .schedule thead {
    height: max(50px, 50px + 10 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .schedule_wrap .schedule thead tr th {
  background: var(--top-green);
  color: #fff;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .schedule thead tr th.holiday {
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .schedule_wrap .schedule tbody tr {
  height: 61px;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .schedule tbody tr {
    height: max(50px, 50px + 11 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .schedule_wrap .schedule tbody tr th {
  background: #ebf2f2;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  section.access .access_wrap .schedule_wrap .schedule tbody tr th {
    line-height: 1.45;
  }
}
section.access .access_wrap .schedule_wrap .schedule tbody tr th span {
  display: inline;
}
@media screen and (max-width: 767px) {
  section.access .access_wrap .schedule_wrap .schedule tbody tr th span {
    display: block;
  }
}
section.access .access_wrap .schedule_wrap .schedule tbody tr td {
  background: #fff;
}
section.access .access_wrap .schedule_wrap .schedule tbody tr td[rowspan] b {
  display: block;
  font-weight: 700;
}
section.access .access_wrap .schedule_wrap .schedule tbody tr td[rowspan] small {
  display: block;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .schedule tbody tr td[rowspan] small {
    font-size: max(12px, 12px + 4 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .schedule_wrap .note_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .note_list {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}
section.access .access_wrap .schedule_wrap .note_list li {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 40px;
  margin: 0;
  border: 1px solid #dedede;
  border-radius: 3px;
  background: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.access .access_wrap .schedule_wrap .note_list li {
    height: max(35px, 35px + 5 * (100vw - 390px) / 1049);
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
section.access .map_wrap {
  height: 325px;
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.access .map_wrap {
    height: max(250px, 250px + 75 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.access .map_wrap {
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }
}
section.access .map_wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media (hover: hover) and (pointer: fine) {
  section.access .access_wrap .info_wrap .contact_wrap a.reserve:hover {
    opacity: 0.8;
  }
}

/* /access */
/* faq */
section.faq .faq_list {
  margin-top: 60px;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
section.faq .faq_list details {
  margin: 0;
  border: 1px solid var(--top-green);
  background: #fff;
}
section.faq .faq_list details summary {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr) 20px;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 10px;
     -moz-column-gap: 10px;
          column-gap: 10px;
  padding: 19px 39px;
  color: var(--top-green);
  cursor: pointer;
  list-style: none;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details summary {
    -webkit-column-gap: max(0px, 10px * (100vw - 390px) / 1049);
       -moz-column-gap: max(0px, 10px * (100vw - 390px) / 1049);
            column-gap: max(0px, 10px * (100vw - 390px) / 1049);
    padding: max(14px, 14px + 5 * (100vw - 390px) / 1049) max(14px, 14px + 25 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.faq .faq_list details summary {
    grid-template-columns: 30px minmax(0, 1fr) 20px;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
section.faq .faq_list details summary .question_mark {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: var(--top-green);
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details summary .question_mark {
    width: max(30px, 30px + 15 * (100vw - 390px) / 1049);
    height: max(30px, 30px + 15 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 4 * (100vw - 390px) / 1049);
  }
}
section.faq .faq_list details summary .question_text {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.45;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details summary .question_text {
    font-size: max(16px, 16px + 4 * (100vw - 390px) / 1049);
  }
}
section.faq .faq_list details summary .toggle {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details summary .toggle {
    width: max(15px, 15px + 5 * (100vw - 390px) / 1049);
    height: max(15px, 15px + 5 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.faq .faq_list details summary .toggle {
    margin-left: 5px;
    margin-top: 5px;
  }
}
section.faq .faq_list details summary .toggle::before,
section.faq .faq_list details summary .toggle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--top-green);
  content: "";
  -webkit-transition: -webkit-transform 0.35s ease;
  transition: -webkit-transform 0.35s ease;
  transition: transform 0.35s ease;
  transition: transform 0.35s ease, -webkit-transform 0.35s ease;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
section.faq .faq_list details summary .toggle::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}
section.faq .faq_list details summary::-webkit-details-marker {
  display: none;
}
section.faq .faq_list details .answer {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  -webkit-column-gap: 12px;
     -moz-column-gap: 12px;
          column-gap: 12px;
  padding: 20px 40px;
  overflow: hidden;
  background: #f6fafa;
  -webkit-transition: height 0.35s ease, padding-top 0.35s ease, padding-bottom 0.35s ease, opacity 0.25s ease;
  transition: height 0.35s ease, padding-top 0.35s ease, padding-bottom 0.35s ease, opacity 0.25s ease;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details .answer {
    -webkit-column-gap: max(10px, 10px + 2 * (100vw - 390px) / 1049);
       -moz-column-gap: max(10px, 10px + 2 * (100vw - 390px) / 1049);
            column-gap: max(10px, 10px + 2 * (100vw - 390px) / 1049);
    padding: max(15px, 15px + 5 * (100vw - 390px) / 1049) max(15px, 15px + 25 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.faq .faq_list details .answer {
    grid-template-columns: 30px minmax(0, 1fr);
  }
}
section.faq .faq_list details .answer .answer_mark {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: var(--top-green-light);
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details .answer .answer_mark {
    width: max(30px, 30px + 15 * (100vw - 390px) / 1049);
    height: max(30px, 30px + 15 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 4 * (100vw - 390px) / 1049);
  }
}
section.faq .faq_list details .answer p {
  margin: 0;
  color: #565351;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details .answer p {
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
section.faq .faq_list details + details {
  margin-top: 40px;
}
@media screen and (max-width: 1439px) {
  section.faq .faq_list details + details {
    margin-top: max(20px, 20px + 20 * (100vw - 390px) / 1049);
  }
}
section.faq .faq_list details:not([open]) .answer {
  display: none;
}
section.faq .faq_list details[open] summary .toggle::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
          transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

/* /faq */
/* sns banner */
section.sns_banner {
  background: #f6fafa;
}
section.sns_banner .banner_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 20px;
}
@media screen and (max-width: 1439px) {
  section.sns_banner .banner_list {
    gap: max(15px, 15px + 25 * (100vw - 390px) / 1049) max(15px, 15px + 5 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.sns_banner .banner_list {
    grid-template-columns: 1fr;
  }
}
section.sns_banner .banner_list li img {
  display: block;
  width: 100%;
  aspect-ratio: 540/192;
  -o-object-fit: cover;
     object-fit: cover;
}
section.sns_banner .banner_list li a {
  display: block;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
section.sns_banner .banner_list li.infection_control {
  grid-column: 1/-1;
}
@media screen and (max-width: 767px) {
  section.sns_banner .banner_list li.infection_control {
    grid-column: auto;
  }
}
section.sns_banner .banner_list li.infection_control picture {
  display: block;
}
section.sns_banner .banner_list li.infection_control img {
  aspect-ratio: 1100/262;
}
@media screen and (max-width: 767px) {
  section.sns_banner .banner_list li.infection_control img {
    aspect-ratio: 350/83;
  }
}
@media (hover: hover) and (pointer: fine) {
  section.sns_banner .banner_list li a:hover {
    opacity: 0.8;
  }
}

/* /sns banner */
/* column */
section.column .column_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin: 60px 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 1439px) {
  section.column .column_list {
    gap: max(20px, 20px + 20 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.column .column_list {
    grid-template-columns: 1fr;
  }
}
section.column .column_list li a {
  display: block;
  color: #565351;
  text-decoration: none;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
section.column .column_list li a .img_wrap {
  width: 100%;
  aspect-ratio: 340/238;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  section.column .column_list li a .img_wrap {
    aspect-ratio: 350/245;
  }
}
section.column .column_list li a .img_wrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.column .column_list li a .meta_wrap {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  margin-top: 24px;
}
@media screen and (max-width: 1439px) {
  section.column .column_list li a .meta_wrap {
    margin-top: max(12px, 12px + 12 * (100vw - 390px) / 1049);
  }
}
section.column .column_list li a .meta_wrap time {
  color: var(--top-green);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 17px;
}
section.column .column_list li a .meta_wrap span {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 68px;
  height: 20px;
  border-radius: 999px;
  background: var(--top-green);
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
}
section.column .column_list li a h3 {
  display: -webkit-box;
  overflow: hidden;
  margin: 10px 0 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 1439px) {
  section.column .column_list li a h3 {
    font-size: max(16px, 16px + 2 * (100vw - 390px) / 1049);
  }
}
section.column p.no_column {
  text-align: center;
  color: #333;
  margin-top: 60px;
  font-size: 20px;
  font-weight: 500;
}
@media screen and (max-width: 1439px) {
  section.column p.no_column {
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 4 * (100vw - 390px) / 1049);
  }
}
section.column .column_btn {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 20px;
  width: 280px;
  height: 60px;
  margin: 60px auto 0;
  border: 1px solid var(--top-green);
  background: #fff;
  color: var(--top-green);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-decoration: none;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (max-width: 1439px) {
  section.column .column_btn {
    height: max(55px, 55px + 5 * (100vw - 390px) / 1049);
    margin-top: max(30px, 30px + 30 * (100vw - 390px) / 1049);
    font-size: max(16px, 16px + 2 * (100vw - 390px) / 1049);
    gap: max(10px, 10px + 10 * (100vw - 390px) / 1049);
  }
}
section.column .column_btn img {
  width: 6px;
  height: 10px;
}
@media (hover: hover) and (pointer: fine) {
  section.column .column_list li a:hover {
    opacity: 0.8;
  }
  section.column .column_btn:hover {
    opacity: 0.8;
  }
}

/* /column */
/* about us */
section.about_us {
  position: relative;
  padding: 100px 0;
  overflow: hidden;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: var(--top-green);
}
@media screen and (max-width: 1439px) {
  section.about_us {
    padding: max(60px, 60px + 40 * (100vw - 390px) / 1049) 0;
  }
}
section.about_us::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: url("../img/about-us_bg.webp") center/cover no-repeat;
  content: "";
}
@media screen and (max-width: 767px) {
  section.about_us::before {
    background-image: url("../img/about-us_bg_sp.webp");
  }
}

section.about_us::after {
  position: absolute;
  z-index: 1;
  inset: 20px;
  border: 2px solid #fff;
  content: "";
  pointer-events: none;
}

section.about_us .inner {
  position: relative;
  z-index: 2;
}
section.about_us .inner .section_title {
  color: #fff;
}
section.about_us .inner .section_title::after {
  background: -webkit-gradient(linear, left top, right top, color-stop(50%, #96ccbc), color-stop(50%, #c8ac7b));
  background: -webkit-linear-gradient(left, #96ccbc 50%, #c8ac7b 50%);
  background: linear-gradient(90deg, #96ccbc 50%, #c8ac7b 50%);
}
section.about_us .inner .about_text {
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  line-height: 2.1;
  text-align: center;
}
@media screen and (max-width: 1439px) {
  section.about_us .inner .about_text {
    font-size: max(14px, 14px + 2 * (100vw - 390px) / 1049);
  }
}
@media screen and (max-width: 767px) {
  section.about_us .inner .about_text {
    padding: 0 20px;
  }
}
@media screen and (max-width: 389px) {
  section.about_us .inner .about_text {
    padding: 0 15px;
  }
}
section.about_us .inner .about_text p {
  margin: 0;
}

/* /about us */
.sp_only {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp_only {
    display: initial;
  }
}

.pc_only {
  display: initial;
}
@media screen and (max-width: 767px) {
  .pc_only {
    display: none;
  }
}
