@charset "UTF-8";
:root {
  --color-main: #4BB8D4;
  --color-accent: #EE4035;
  --color-text: #333;
  --color-text-sub: #323232;
  --color-bg: #F8F8F5;
  --color-bg-sub: #fff;
  --color-border: #4BB8D4;
  --color-link: #2962ff;
  --color-bg-blue: #C0E6F1;
  --color-gray: #C0C0C0;
  --font-size-xs: 1.2rem;
  --font-size-sm: 1.4rem;
  --font-size-base: 1.6rem;
  --font-size-md: 1.8rem;
  --font-size-lg: 2.0rem;
  --font-size-xl: 2.4rem;
  --font-size-2xl: 3.2rem;
  --font-size-3xl: 4.0rem;
  --line-height-tight: 1.4;
  --line-height-base: 1.8;
  --line-height-loose: 2.0;
  --letter-spacing-tight: -0.02em;
  --letter-spacing-base: 0.05em;
  --letter-spacing-wide: 0.1em;
  --letter-spacing-wider: 0.2em;
  --space-xs: 0.4rem;
  --space-sm: 0.8rem;
  --space-md: 1.6rem;
  --space-lg: 2.4rem;
  --space-xl: 4.0rem;
  --space-xxl: 8.0rem;
  --container-sm: 800px;
  --container-md: 1000px;
  --container-width: 1200px;
  --container-padding: 2.4rem;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.10);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --z-base: 0;
  --z-header: 100;
  --z-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;
  --transition: 0.3s ease;
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-soft: cubic-bezier(0.4, 0, 0.2, 1);
}

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

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  font-family: YakuHanJP, "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-size: var(--font-size-base);
  color: var(--color-text);
  line-height: var(--line-height-base);
  min-height: 100dvh;
}
body.is-locked {
  overflow: hidden;
}
@media screen and (max-width: 599px) {
  body {
    padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }
}

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

a {
  transition: opacity var(--transition);
}
a:hover {
  opacity: 0.75;
}
a[href="#"] {
  pointer-events: none;
  opacity: 0.5;
}
a.is-disabled {
  pointer-events: none;
  opacity: 0.5;
}

.section_inner {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}

.inner-sm {
  width: 100%;
  margin: 0 auto;
  padding: 0 150px;
}
@media screen and (max-width: 599px) {
  .inner-sm {
    padding: 0;
  }
}

.is_pc {
  display: block;
}
@media screen and (max-width: 599px) {
  .is_pc {
    display: none;
  }
}

.is_sp {
  display: none;
}
@media screen and (max-width: 599px) {
  .is_sp {
    display: block;
  }
}

.mb5 {
  margin-bottom: 0.5rem !important;
}

.mt5 {
  margin-top: 0.5rem !important;
}

.mb10 {
  margin-bottom: 1rem !important;
}

.mt10 {
  margin-top: 1rem !important;
}

.mb15 {
  margin-bottom: 1.5rem !important;
}

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

.mb20 {
  margin-bottom: 2rem !important;
}

.mt20 {
  margin-top: 2rem !important;
}

.mb25 {
  margin-bottom: 2.5rem !important;
}

.mt25 {
  margin-top: 2.5rem !important;
}

.mb30 {
  margin-bottom: 3rem !important;
}

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

.mb40 {
  margin-bottom: 4rem !important;
}

.mt40 {
  margin-top: 4rem !important;
}

.mb50 {
  margin-bottom: 5rem !important;
}

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

.mb60 {
  margin-bottom: 6rem !important;
}

.mt60 {
  margin-top: 6rem !important;
}

.mb80 {
  margin-bottom: 8rem !important;
}

.mt80 {
  margin-top: 8rem !important;
}

.mb100 {
  margin-bottom: 10rem !important;
}

.mt100 {
  margin-top: 10rem !important;
}

input[type=submit],
input[type=button] {
  -webkit-appearance: button;
     -moz-appearance: button;
          appearance: button;
  border-radius: 0;
  border: none;
  box-sizing: border-box;
}
input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
  display: none;
}
input[type=submit]:focus,
input[type=button]:focus {
  outline-offset: -2px;
}

.section_ttl img {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
@media screen and (max-width: 599px) {
  .section_ttl img {
    width: 60px;
  }
}
.section_ttl h2 {
  text-align: center;
  color: var(--color-text);
  font-weight: 700;
  font-size: min(2.6388888889vw, 38px);
  font-size: clamp(28px, 2.6388888889vw, 38px);
  letter-spacing: 3.8px;
}
@media screen and (max-width: 599px) {
  .section_ttl h2 {
    font-size: 7.1794871795vw;
  }
}

.btn_01,
.btn_02 {
  position: relative;
  max-width: 264px;
  width: 100%;
  margin-top: 40px;
  border-radius: 999px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: clamp(14px, 1.1111111111vw, 16px);
  font-weight: 500;
  padding: 15px 0;
  transition: background-color var(--transition), color var(--transition);
}
@media screen and (max-width: 599px) {
  .btn_01,
  .btn_02 {
    font-size: 16px;
  }
}
.btn_01 svg,
.btn_02 svg {
  position: absolute;
  right: 1.3888888889vw;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (max-width: 599px) {
  .btn_01 svg,
  .btn_02 svg {
    right: 5.1282051282vw;
  }
}
.btn_01 svg circle,
.btn_01 svg path,
.btn_02 svg circle,
.btn_02 svg path {
  transition: fill var(--transition), stroke var(--transition);
}

.btn_01 {
  background-color: var(--color-bg-sub);
  color: var(--color-main);
  border: 2px solid #4bb8d4;
}
.btn_01 svg circle {
  fill: var(--color-main);
}
.btn_01 svg path {
  stroke: var(--color-bg-sub);
}
.btn_01:hover {
  background-color: var(--color-main);
  color: var(--color-bg-sub);
}
.btn_01:hover svg circle {
  fill: var(--color-bg-sub);
}
.btn_01:hover svg path {
  stroke: var(--color-main);
}

.btn_02 {
  background-color: var(--color-main);
  color: #fff;
  border: 2px solid var(--color-main);
}
@media screen and (max-width: 599px) {
  .btn_02 {
    margin: 24px auto 0;
  }
}
.btn_02 svg circle {
  fill: var(--color-bg-sub);
}
.btn_02 svg path {
  stroke: var(--color-main);
}
.btn_02:hover {
  background-color: var(--color-bg-sub);
  color: var(--color-main);
}
.btn_02:hover svg circle {
  fill: var(--color-main);
}
.btn_02:hover svg path {
  stroke: var(--color-bg-sub);
}

.tel {
  max-width: 268px;
  width: 100%;
  min-height: 60px;
  background-color: #c0e6f1;
  border-radius: 999px;
  color: #323232;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.tel span {
  display: block;
  text-align: center;
  font-size: 12px;
  line-height: 1;
}
.tel div {
  display: flex;
  gap: 4px;
  justify-content: center;
  align-items: center;
  font-family: Barlow;
  font-size: 20px;
  line-height: 1;
}

.web {
  position: relative;
  max-width: 268px;
  width: 100%;
  min-height: 60px;
  background-color: #4bb8d4;
  color: #fff;
  border-radius: 999px;
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
}
.web p {
  margin: 0;
  font-size: 18px;
  display: block;
}
.web p span {
  font-family: Barlow;
}
.web .web_arrow {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.yoyaku_btn > p {
  display: flex;
  gap: 5px;
  align-items: baseline;
  margin: 0 auto 20px;
  justify-content: center;
}
.yoyaku_btn .btn_flex {
  display: flex;
  gap: 24px;
  justify-content: center;
}
@media screen and (max-width: 599px) {
  .yoyaku_btn .btn_flex {
    flex-direction: column;
    gap: 16px;
  }
  .yoyaku_btn .btn_flex .tel {
    margin: 0 auto;
  }
  .yoyaku_btn .btn_flex .web {
    margin: 0 auto;
  }
  .yoyaku_btn .btn_flex .web p {
    margin: 0;
  }
}

.clinic_hours {
  display: flex;
  align-items: stretch;
  max-width: 520px;
  width: 100%;
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 12px;
}
.clinic_hours .clinic_hours_info {
  flex-shrink: 0;
  width: 152px;
}
@media screen and (max-width: 599px) {
  .clinic_hours .clinic_hours_info {
    width: 120px;
  }
}
.clinic_hours .clinic_hours_info p {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
}
@media screen and (max-width: 599px) {
  .clinic_hours .clinic_hours_info p {
    font-size: 14px;
  }
}
.clinic_hours .clinic_hours_info .ttl {
  background-color: var(--color-main);
  color: #fff;
}
.clinic_hours .clinic_hours_info .time {
  background-color: var(--color-bg);
  color: var(--color-text);
}
.clinic_hours .clinic_hours_days {
  display: flex;
  flex: 1;
}
.clinic_hours .clinic_hours_days li {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.clinic_hours .clinic_hours_days li .day {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  background-color: var(--color-main);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
}
@media screen and (max-width: 599px) {
  .clinic_hours .clinic_hours_days li .day {
    font-size: 14px;
  }
}
.clinic_hours .clinic_hours_days li .status {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  background-color: var(--color-bg);
  color: var(--color-text);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
}
.clinic_hours .clinic_hours_days li .status .dot {
  display: block;
  width: 13px;
  height: 13px;
  border-radius: var(--radius-full);
  background-color: var(--color-main);
}
.clinic_hours .clinic_hours_days li .status .triangle {
  display: block;
  width: 0;
  height: 0;
  border-left: 6.5px solid transparent;
  border-right: 6.5px solid transparent;
  border-bottom: 12px solid var(--color-main);
}

.top_banner {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  max-width: 990px;
  width: 100%;
  min-height: 225px;
  margin: 0 auto 56px;
  padding: 40px;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 599px) {
  .top_banner {
    padding: 30px 16px;
    margin-bottom: 40px;
  }
}
.top_banner .top_banner_bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform var(--transition);
  z-index: 0;
}
.top_banner a {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  color: #fff;
}
.top_banner a:hover {
  opacity: 1;
}
@media screen and (max-width: 599px) {
  .top_banner a {
    gap: 24px;
  }
}
.top_banner a .banner_text h3 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 16px;
}
@media screen and (max-width: 599px) {
  .top_banner a .banner_text h3 {
    font-size: 22px;
    line-height: 1.5;
  }
}
.top_banner a svg circle,
.top_banner a svg path {
  transition: fill var(--transition), stroke var(--transition);
}
.top_banner:hover .top_banner_bg {
  transform: scale(1.1);
}
.top_banner:hover svg circle {
  fill: var(--color-main);
}
.top_banner:hover svg path {
  stroke: #fff;
}

.js-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.js-fade.is-active {
  opacity: 1;
  transform: translateY(0);
}

.js-fade-delay-1 {
  transition-delay: 0.1s;
}

.js-fade-delay-2 {
  transition-delay: 0.2s;
}

.js-fade-delay-3 {
  transition-delay: 0.3s;
}

.js-fade-delay-4 {
  transition-delay: 0.4s;
}

/*------------------------------------------------
table
------------------------------------------------*/
.under-content_wrap table,
.post-content_wrap table {
  width: 100%;
  border-collapse: collapse;
}
.under-content_wrap table tr,
.post-content_wrap table tr {
  border-top: 1px solid var(--color-gray);
}
.under-content_wrap table tr:last-child,
.post-content_wrap table tr:last-child {
  border-bottom: 1px solid var(--color-gray);
}
.under-content_wrap table th, .under-content_wrap table td,
.post-content_wrap table th,
.post-content_wrap table td {
  text-align: left;
  padding: 3rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table th, .under-content_wrap table td,
  .post-content_wrap table th,
  .post-content_wrap table td {
    padding: 1rem;
  }
}
.under-content_wrap table th,
.post-content_wrap table th {
  width: 250px;
  background: var(--color-bg-blue);
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table th,
  .post-content_wrap table th {
    display: block;
    width: 100%;
    margin-bottom: 0.5rem;
  }
}
.under-content_wrap table td,
.post-content_wrap table td {
  font-size: 1.5rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table td,
  .post-content_wrap table td {
    display: block;
    width: 100%;
  }
}
@media screen and (max-width: 599px) {
  .under-content_wrap table tr,
  .post-content_wrap table tr {
    display: block;
  }
}
.under-content_wrap table.compare,
.post-content_wrap table.compare {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
}
.under-content_wrap table.compare tr,
.post-content_wrap table.compare tr {
  border-top: 1px solid var(--color-gray);
}
.under-content_wrap table.compare tr:last-child,
.post-content_wrap table.compare tr:last-child {
  border-bottom: 1px solid var(--color-gray);
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.compare tr,
  .post-content_wrap table.compare tr {
    display: table-row;
  }
}
.under-content_wrap table.compare th, .under-content_wrap table.compare td,
.post-content_wrap table.compare th,
.post-content_wrap table.compare td {
  text-align: left;
  padding: 1.5rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.compare th, .under-content_wrap table.compare td,
  .post-content_wrap table.compare th,
  .post-content_wrap table.compare td {
    display: table-cell;
    width: auto;
    margin-bottom: 0;
    padding: 0.8rem 0.5rem;
  }
}
.under-content_wrap table.compare thead th,
.post-content_wrap table.compare thead th {
  background: var(--color-bg-blue);
  font-weight: 700;
  text-align: center;
  width: 35%;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.compare thead th,
  .post-content_wrap table.compare thead th {
    font-size: 1.2rem;
  }
}
.under-content_wrap table.compare thead th:first-child,
.post-content_wrap table.compare thead th:first-child {
  background: none;
  width: 30%;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.compare thead th:first-child,
  .post-content_wrap table.compare thead th:first-child {
    width: 26%;
  }
}
.under-content_wrap table.compare tbody th,
.post-content_wrap table.compare tbody th {
  width: 30%;
  background: rgba(254, 245, 230, 0.5);
  font-weight: 700;
  text-align: left;
  vertical-align: middle;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.compare tbody th,
  .post-content_wrap table.compare tbody th {
    width: 26%;
    font-size: 1.2rem;
  }
}
.under-content_wrap table.compare tbody td,
.post-content_wrap table.compare tbody td {
  font-size: 1.5rem;
  vertical-align: middle;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.compare tbody td,
  .post-content_wrap table.compare tbody td {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price,
  .post-content_wrap table.price {
    table-layout: fixed;
  }
}
.under-content_wrap table.price tr,
.post-content_wrap table.price tr {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Ccircle cx='2' cy='2' r='2' fill='%234BB8D4'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-position: left bottom;
  border-top: none;
}
.under-content_wrap table.price tr:last-child,
.post-content_wrap table.price tr:last-child {
  border-bottom: none;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price tr,
  .post-content_wrap table.price tr {
    display: block;
  }
}
.under-content_wrap table.price th, .under-content_wrap table.price td,
.post-content_wrap table.price th,
.post-content_wrap table.price td {
  padding-top: 1rem;
  padding-bottom: 1rem;
  background: none;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price th, .under-content_wrap table.price td,
  .post-content_wrap table.price th,
  .post-content_wrap table.price td {
    display: block;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
    padding: 0.8rem 1rem;
  }
}
.under-content_wrap table.price th,
.post-content_wrap table.price th {
  width: 60%;
  font-weight: 700;
  font-size: 15px;
  padding-left: 0.5rem;
  text-align: left;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price th,
  .post-content_wrap table.price th {
    width: 100%;
  }
}
.under-content_wrap table.price td,
.post-content_wrap table.price td {
  text-align: right;
  padding-right: 0.5rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price td,
  .post-content_wrap table.price td {
    width: 100%;
  }
}
.under-content_wrap table.price .price-original,
.post-content_wrap table.price .price-original {
  color: var(--color-gray);
  text-decoration: line-through;
}
.under-content_wrap table.price .price-campaign,
.post-content_wrap table.price .price-campaign {
  display: inline-block;
  padding: 0.3rem 1.2rem;
  border-radius: 10px;
  background: var(--color-main);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price .price-campaign,
  .post-content_wrap table.price .price-campaign {
    font-size: 1.4rem;
  }
}
.under-content_wrap table.price thead th,
.post-content_wrap table.price thead th {
  background: var(--color-bg);
  text-align: right;
  font-size: 1.4rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price thead th,
  .post-content_wrap table.price thead th {
    display: table-cell;
  }
}
.under-content_wrap table.price thead th:first-child,
.post-content_wrap table.price thead th:first-child {
  text-align: left;
  padding-left: 0.5rem;
  font-size: 1.5rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price thead th:first-child,
  .post-content_wrap table.price thead th:first-child {
    width: 65%;
    font-size: 1.3rem;
  }
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price thead th:last-child,
  .post-content_wrap table.price thead th:last-child {
    width: 35%;
    font-size: 1.2rem;
  }
}
.under-content_wrap table.price thead ~ tbody th,
.post-content_wrap table.price thead ~ tbody th {
  text-align: left;
  font-weight: normal;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price thead ~ tbody th,
  .post-content_wrap table.price thead ~ tbody th {
    display: table-cell;
    width: 65%;
    font-size: 1.3rem;
  }
}
.under-content_wrap table.price thead ~ tbody td,
.post-content_wrap table.price thead ~ tbody td {
  white-space: nowrap;
  width: 13%;
  text-align: right;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price thead ~ tbody td,
  .post-content_wrap table.price thead ~ tbody td {
    display: table-cell;
    white-space: normal;
    overflow-wrap: break-word;
    width: 35%;
    font-size: 1.2rem;
  }
}
.under-content_wrap table.price.compare,
.post-content_wrap table.price.compare {
  table-layout: fixed;
  width: 100%;
}
.under-content_wrap table.price.compare thead th,
.post-content_wrap table.price.compare thead th {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 700;
  padding: 1.2rem 0.8rem;
}
.under-content_wrap table.price.compare thead th:first-child,
.post-content_wrap table.price.compare thead th:first-child {
  width: 45%;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead th:first-child,
  .post-content_wrap table.price.compare thead th:first-child {
    width: 22%;
  }
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead th:not(:first-child),
  .post-content_wrap table.price.compare thead th:not(:first-child) {
    width: auto;
  }
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead th,
  .post-content_wrap table.price.compare thead th {
    display: table-cell;
    font-size: 1.15rem;
    padding: 0.9rem 0.5rem;
  }
}
.under-content_wrap table.price.compare thead td,
.post-content_wrap table.price.compare thead td {
  text-align: center;
  padding: 0.5rem 0.8rem 1rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead td,
  .post-content_wrap table.price.compare thead td {
    display: table-cell;
  }
}
.under-content_wrap table.price.compare thead td img,
.post-content_wrap table.price.compare thead td img {
  max-width: 180px;
  width: 100%;
  height: auto;
  margin: 1rem auto;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead td img,
  .post-content_wrap table.price.compare thead td img {
    max-width: 72px;
  }
}
.under-content_wrap table.price.compare thead ~ tbody th,
.post-content_wrap table.price.compare thead ~ tbody th {
  width: 30%;
  text-align: left;
  padding: 1rem 1rem 1rem 1.2rem;
  background: rgba(254, 245, 230, 0.5);
  font-weight: 700;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead ~ tbody th,
  .post-content_wrap table.price.compare thead ~ tbody th {
    display: table-cell;
    width: 22%;
    font-size: 1.15rem;
    padding: 0.8rem 0.5rem 0.8rem 0.8rem;
  }
}
.under-content_wrap table.price.compare thead ~ tbody td,
.post-content_wrap table.price.compare thead ~ tbody td {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  text-align: left;
  padding: 1rem 1.2rem;
  width: auto;
}
@media screen and (max-width: 599px) {
  .under-content_wrap table.price.compare thead ~ tbody td,
  .post-content_wrap table.price.compare thead ~ tbody td {
    display: table-cell;
    width: auto;
    font-size: 1.15rem;
    padding: 0.8rem 0.5rem;
  }
}

/*************************************************
header
*************************************************/
header .header_pc {
  padding-left: 2.7777777778vw;
  display: flex;
  justify-content: space-between;
  width: 100%;
  position: fixed;
  z-index: 999;
  transition: background-color var(--transition), box-shadow var(--transition);
}
header .header_pc.is-scrolled {
  background-color: rgb(255, 255, 255);
  box-shadow: var(--shadow-sm);
}
header .header_pc.is-scrolled .header_logo {
  max-width: 12.5vw;
  padding-top: 0.5555555556vw;
}
header .header_pc.is-scrolled .header_logo img {
  max-width: clamp(140px, 12.5vw, 180px);
}
header .header_pc.is-scrolled .header_right ul {
  align-items: center;
}
@media screen and (max-width: 599px) {
  header .header_pc {
    display: none;
  }
}
header .header_pc .header_logo {
  display: block;
  max-width: 18.1944444444vw;
  width: 100%;
  padding-top: 2.0833333333vw;
  transition: max-width var(--transition), padding-top var(--transition);
}
header .header_pc .header_logo img {
  max-width: clamp(200px, 18.1944444444vw, 262px);
  width: 100%;
  display: block;
  transition: max-width var(--transition);
}
header .header_pc .header_right {
  display: flex;
  height: 6.9444444444vw;
  align-items: center;
}
header .header_pc .header_right ul {
  display: flex;
}
header .header_pc .header_right ul li {
  padding: 0 1.3888888889vw;
  position: relative;
  height: auto;
}
header .header_pc .header_right ul li a,
header .header_pc .header_right ul li .nav-label {
  text-decoration: none;
  color: var(--color-text-sub);
  font-size: clamp(12px, 1.1111111111vw, 16px);
  white-space: nowrap;
}
header .header_pc .header_right ul li a:hover {
  color: var(--color-main);
}
header .header_pc .header_right ul li:not(.header_insta):not(.header_tel):before {
  position: absolute;
  left: 0px;
  top: 0.4861111111vw;
  content: "";
  width: 1px;
  height: 16px;
  background-color: #c0c0c0;
}
header .header_pc .header_right ul li.has-dropdown .nav-label {
  cursor: default;
}
header .header_pc .header_right ul li.has-dropdown:hover .nav-label {
  color: var(--color-main);
}
header .header_pc .header_right ul li.has-dropdown .dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  min-width: 240px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: var(--shadow-sm);
  padding: 0.5555555556vw 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--transition), visibility var(--transition), transform var(--transition);
  z-index: 10;
}
header .header_pc .header_right ul li.has-dropdown .dropdown li {
  width: 100%;
  padding: 0 1.3888888889vw;
  background-image: linear-gradient(to right, var(--color-main) 50%, transparent 50%);
  background-position: bottom;
  background-size: 8px 2px;
  background-repeat: repeat-x;
  background-origin: content-box;
  background-clip: content-box;
  box-sizing: border-box;
}
header .header_pc .header_right ul li.has-dropdown .dropdown li:before {
  content: none;
}
header .header_pc .header_right ul li.has-dropdown .dropdown li a {
  display: block;
  padding: 0.6944444444vw 0;
  font-size: clamp(12px, 0.9722222222vw, 14px);
  white-space: nowrap;
}
header .header_pc .header_right ul li.has-dropdown .dropdown li a:hover {
  background-color: var(--color-bg-blue);
}
header .header_pc .header_right ul li.has-dropdown:hover .dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
header .header_pc .header_right ul .header_insta {
  padding: 0 10px;
}
header .header_pc .header_right ul .header_tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 10px;
}
header .header_pc .header_right ul .header_tel p {
  font-size: clamp(10px, 0.9027777778vw, 14px);
  transition: color var(--transition);
}
header .header_pc .header_right ul .header_tel a {
  display: flex;
  gap: 0.2777777778vw;
  align-items: center;
  font-family: Barlow;
  font-size: clamp(16px, 1.3888888889vw, 20px);
  transition: color var(--transition);
}
header .header_pc .header_right ul .header_tel a svg path {
  transition: fill var(--transition);
}
header .header_pc .header_right ul .header_tel:hover p,
header .header_pc .header_right ul .header_tel:hover a {
  color: var(--color-main);
}
header .header_pc .header_right ul .header_tel:hover a svg path {
  fill: var(--color-main);
}
header .header_pc .header_right .web_yoyaku {
  border-radius: 0 0 0 var(--border-radius_24px, 24px);
  background: var(--02-main2, #4bb8d4);
  width: 6.9444444444vw;
  height: 6.9444444444vw;
  display: flex;
  gap: 0.2777777778vw;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
}
header .header_pc .header_right .web_yoyaku p {
  font-size: 1.1111111111vw;
  font-style: normal;
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
}
header .header_pc .header_right .web_yoyaku span {
  display: block;
  font-family: Barlow;
  font-size: 1.1111111111vw;
  font-style: normal;
  font-weight: 600;
}
header .header_sp {
  display: none;
}
@media screen and (max-width: 599px) {
  header .header_sp {
    display: flex;
    justify-content: space-between;
    width: 100%;
    position: fixed !important;
    top: 0;
    left: 0;
    z-index: 999;
    background-color: transparent;
    transition: background-color var(--transition), box-shadow var(--transition);
  }
  header .header_sp.is-scrolled {
    background-color: rgb(255, 255, 255);
    box-shadow: var(--shadow-sm);
  }
  header .header_sp.is-scrolled .header_logo {
    width: 32.0512820513vw;
    padding-left: 16px;
    padding-top: 0px;
    margin: 1rem 0 0 0;
  }
  header .header_sp.is-scrolled .menu_btn {
    width: 14.1025641026vw;
    height: 14.1025641026vw;
  }
  header .header_sp .header_logo {
    display: block;
    width: 51.2820512821vw;
    padding: 0vw 0 0 16px;
    margin: 1rem 0;
  }
  header .header_sp .header_logo img {
    width: 100%;
    display: block;
  }
  header .header_sp .menu_btn {
    flex-shrink: 0;
    width: 16.6666666667vw;
    height: 16.6666666667vw;
    background-color: var(--color-main);
    border: none;
    border-radius: 0 0 0 var(--radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5384615385vw;
  }
  header .header_sp .menu_btn span {
    display: block;
    width: 7.1794871795vw;
    height: 2px;
    background-color: #fff;
  }
}
@media screen and (max-width: 599px) and (max-width: 599px) {
  header .header_sp .menu_btn {
    width: 16.6666666667vw;
    height: 16.6666666667vw;
  }
}
header .sp_nav {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background-color: #fff;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--transition), visibility var(--transition);
}
header .sp_nav.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
header .sp_nav .sp_nav_head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
header .sp_nav .sp_nav_head .header_logo {
  display: block;
  width: 50vw;
  padding-left: 16px;
  padding-top: 5.1282051282vw;
}
header .sp_nav .sp_nav_head .header_logo img {
  width: 100%;
  display: block;
}
header .sp_nav .sp_nav_head .close_btn {
  flex-shrink: 0;
  width: 18.4615384615vw;
  height: 18.4615384615vw;
  background-color: var(--color-main);
  border: none;
  border-radius: 0 0 0 var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}
header .sp_nav .sp_nav_body {
  padding: 7.6923076923vw;
}
header .sp_nav .sp_nav_list {
  margin-bottom: 6.1538461538vw;
}
header .sp_nav .sp_nav_list > li {
  background-image: linear-gradient(to right, var(--color-main) 50%, transparent 50%);
  background-position: bottom;
  background-size: 8px 2px;
  background-repeat: repeat-x;
}
header .sp_nav .sp_nav_list > li:last-child {
  background-image: none;
}
header .sp_nav .sp_nav_list > li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6.1538461538vw 0;
  color: var(--color-text);
  font-size: 4.6153846154vw;
  font-weight: 500;
}
header .sp_nav .sp_nav_list .accordion_btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  padding: 6.1538461538vw 5.1282051282vw 6.1538461538vw 0;
  background: none;
  border: none;
  color: var(--color-text);
  font-size: 4.6153846154vw;
  font-weight: 500;
  text-align: left;
}
header .sp_nav .sp_nav_list .accordion_btn::before, header .sp_nav .sp_nav_list .accordion_btn::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  background-color: var(--color-text);
  transition: height var(--transition);
}
header .sp_nav .sp_nav_list .accordion_btn::before {
  width: 3.5897435897vw;
  height: 2px;
  transform: translateY(-50%);
}
header .sp_nav .sp_nav_list .accordion_btn::after {
  width: 2px;
  height: 3.5897435897vw;
  transform: translate(-1.5384615385vw, -50%);
}
header .sp_nav .sp_nav_list .accordion_btn[aria-expanded=true]::after {
  height: 0;
}
header .sp_nav .sp_nav_list .accordion_body {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition);
}
header .sp_nav .sp_nav_list .accordion_body li {
  display: flex;
  align-items: flex-start;
  padding: 2.5641025641vw 0;
  font-size: 3.8461538462vw;
}
header .sp_nav .sp_nav_list .accordion_body li::before {
  content: "－ ";
  flex-shrink: 0;
}
header .sp_nav .sp_nav_list .accordion_body li:last-child {
  padding-bottom: 5.1282051282vw;
}
header .sp_nav .sp_nav_list .accordion_body li a {
  color: var(--color-text);
}
header .sp_nav .sp_nav_hours {
  margin-bottom: 6.1538461538vw;
}
header .sp_nav .sp_nav_hours .clinic_hours {
  max-width: 100%;
  margin-bottom: 3.0769230769vw;
}
header .sp_nav .sp_nav_hours p {
  font-size: 3.5897435897vw;
}
header .sp_nav .sp_nav_hours p .triangle {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 6.5px solid transparent;
  border-right: 6.5px solid transparent;
  border-bottom: 12px solid var(--color-main);
  vertical-align: middle;
  margin-right: 4px;
  margin-bottom: 4px;
}
header .sp_nav .sp_nav_btn {
  display: flex;
  flex-direction: column;
  gap: 4.1025641026vw;
}
header .sp_nav .sp_nav_btn .tel,
header .sp_nav .sp_nav_btn .web {
  max-width: 100%;
}

/*************************************************
footer
*************************************************/
#footer > .section_inner {
  border-top: solid 1px var(--color-gray);
}
.home #footer > .section_inner {
  border-top: none;
}
#footer .section_inner {
  padding: 96px 0;
  display: flex;
  justify-content: space-between;
  gap: 64px;
}
@media screen and (max-width: 599px) {
  #footer .section_inner {
    flex-direction: column;
    width: calc(100% - 32px);
    padding: 65px 0;
    gap: 24px;
  }
}
#footer .section_inner .left {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media screen and (max-width: 599px) {
  #footer .section_inner .left {
    padding: 0 16px;
  }
}
#footer .section_inner .left .logo img {
  max-width: 440px;
  width: 100%;
  display: block;
  margin-bottom: 10px;
}
#footer .section_inner .left .footer_yoyaku .btn_flex {
  display: flex;
  gap: 24px;
}
@media screen and (max-width: 599px) {
  #footer .section_inner .left .footer_yoyaku .btn_flex {
    flex-direction: column;
    gap: 16px;
  }
}
#footer .section_inner .left .footer_yoyaku .tel,
#footer .section_inner .left .footer_yoyaku .web {
  max-width: 248px;
}
@media screen and (max-width: 599px) {
  #footer .section_inner .left .footer_yoyaku .tel,
  #footer .section_inner .left .footer_yoyaku .web {
    margin: 0 auto;
  }
}
#footer .section_inner .left .hours p {
  font-size: 14px;
}
@media screen and (max-width: 599px) {
  #footer .section_inner .left .hours p {
    font-size: 12px;
  }
}
#footer .section_inner .left .hours p .triangle {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 6.5px solid transparent;
  border-right: 6.5px solid transparent;
  border-bottom: 12px solid var(--color-main);
  vertical-align: middle;
  margin-right: 4px;
  margin-bottom: 4px;
}
#footer .section_inner .left .footer_news ul li {
  padding: 16px 0;
  border-bottom: solid 1px #c0c0c0;
}
#footer .section_inner .left .footer_news ul a {
  color: #323232;
}
#footer .section_inner .left .footer_news ul .news_box {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 8px;
  color: #323232;
}
#footer .section_inner .left .footer_news ul .news_box .news_date {
  display: inline-block;
  color: #323232;
  font-size: 13px;
  font-weight: 500;
}
#footer .section_inner .left .footer_news ul .news_box .news_category {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  color: #fff;
  background-color: #4bb8d4;
  border-radius: 999px;
  font-size: 12px;
  padding: 3px 15px;
}
#footer .section_inner .left .footer_news ul .news_ttl {
  font-weight: 700;
  font-size: 16px;
  color: #323232;
  margin-bottom: 8px;
}
#footer .section_inner .left .footer_news ul .news_content {
  font-size: 14px;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#footer .section_inner .gmap iframe {
  display: block;
  width: 576px;
  height: 100%;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  #footer .section_inner .gmap iframe {
    width: 100%;
    height: 230px;
  }
}
#footer .footer_link {
  background-image: url(../images/footer_link_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 60px;
}
@media screen and (max-width: 599px) {
  #footer .footer_link {
    background-image: url(../images/footer_link_bg_sp.png);
  }
}
#footer .footer_link ul {
  max-width: 200px;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #footer .footer_link ul {
    max-width: 100%;
  }
}
#footer .footer_link ul li {
  padding: 6px 0;
  font-size: 15px;
  color: #323232;
  list-style: none;
}
@media screen and (max-width: 599px) {
  #footer .footer_link ul li {
    font-size: 14px;
    padding: 3px;
  }
}
#footer .footer_link ul li:first-child {
  padding-bottom: 12px;
  border-bottom: 1px solid #c0c0c0;
}
#footer .footer_link ul li:not(:first-child) {
  display: flex;
  gap: 6px;
}
#footer .footer_link ul li:not(:first-child)::before {
  content: "－ ";
  flex-shrink: 0;
}
#footer .footer_link ul li a {
  color: #323232;
}
#footer .footer_link ul li a:hover {
  color: #4bb8d4;
}
#footer .footer_link ul li .top_link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
#footer .footer_link ul li .top_link svg path {
  transition: stroke var(--transition);
}
#footer .footer_link ul li .top_link:hover svg path {
  stroke: #4bb8d4;
}
#footer small {
  display: block;
  text-align: center;
  max-width: 1200px;
  width: 100%;
  padding: 15px 0;
  border-top: 1px solid #c0c0c0;
  margin: 0 auto;
}
@media screen and (max-width: 599px) {
  #footer small {
    font-size: 10px;
    margin-top: 60px;
    padding: 16px;
  }
}

.sp_fixed_btn {
  display: none;
}
@media screen and (max-width: 599px) {
  .sp_fixed_btn {
    display: flex;
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 900;
    width: 100%;
    gap: 8px;
    padding: 2.0512820513vw 3.5897435897vw;
    background-color: #fff;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  }
  .sp_fixed_btn .tel,
  .sp_fixed_btn .web {
    flex: 1;
    max-width: none;
    min-height: 14.358974359vw;
  }
  .sp_fixed_btn .tel span {
    font-size: 10px;
  }
  .sp_fixed_btn .tel div {
    font-size: 16px;
  }
  .sp_fixed_btn .web p {
    font-size: 14px;
  }
}

/*************************************************
FV
*************************************************/
#fv {
  padding: 90px 0 215px 0;
  background-image: url(../images/fv_bg.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom;
}
@media screen and (max-width: 599px) {
  #fv {
    padding: 20px 16px;
    background-image: url(../images/fv_bg_sp.png);
    padding-bottom: 64px;
  }
}
#fv .fv_visual {
  position: relative;
  max-width: 1340px;
  width: 100%;
  margin: 0 auto;
  margin-bottom: 120px;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual {
    margin-bottom: 60px;
  }
}
#fv .fv_visual .fv_inner {
  position: relative;
  background-image: url(../images/mv.png);
  background-repeat: no-repeat;
  background-size: cover;
  height: 720px;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_inner {
    background-image: url(../images/sp_mv.png);
    height: 450px;
    background-position: center;
  }
}
#fv .fv_visual .fv_inner .fv_copy {
  position: absolute;
  left: 3.4722222222vw;
  bottom: 3.4722222222vw;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  color: var(--color-text-sub);
  font-weight: 700;
  font-size: 46px;
  letter-spacing: 2.3px;
  line-height: 1.1;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_inner .fv_copy {
    font-size: 28px;
    left: 4.1025641026vw;
    bottom: 60px;
    gap: 6px;
  }
}
#fv .fv_visual .fv_inner .fv_copy span {
  display: inline-block;
  padding: 4px 24px;
  border-radius: var(--border-radius_8px, 8px);
  background: var(--01-white, #fff);
  box-shadow: 3px 3px 0 0 #71aab9;
}
#fv .fv_visual .fv_case {
  position: absolute;
  right: 1.6666666667vw;
  bottom: 1.6666666667vw;
  border-radius: var(--border-radius_16px, 16px);
  background: #fff;
  max-width: 474px;
  width: 100%;
  display: inline-flex;
  padding: 16px 16px 24px 16px;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_case {
    position: static;
    display: flex;
    padding: 12px 8px;
    margin: -40px auto 0;
    max-width: 340px;
  }
}
#fv .fv_visual .fv_case .fv_case_icon {
  max-width: 35px;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_case .fv_case_icon {
    max-width: 32px;
  }
}
#fv .fv_visual .fv_case p {
  color: var(--02-text-color, #323232);
  text-align: center;
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: 130%; /* 26px */
  letter-spacing: 1px;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_case p {
    font-size: 15px;
  }
}
#fv .fv_visual .fv_case .fv_case_box {
  display: flex;
  gap: 12px;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_case .fv_case_box {
    gap: 6px;
  }
}
#fv .fv_visual .fv_case .fv_case_box img {
  max-width: 215px;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #fv .fv_visual .fv_case .fv_case_box img {
    flex: 1;
    min-width: 0;
    max-width: none;
  }
}
#fv .new_open {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  background-color: var(--color-bg);
  border-radius: 24px;
  padding: 60px 0;
}
@media screen and (max-width: 599px) {
  #fv .new_open {
    padding: 40px 16px;
  }
}
#fv .new_open .new_open_inner {
  max-width: 990px;
  width: 100%;
  margin: 0 auto;
}
#fv .new_open .new_open_ttl {
  margin-bottom: 46px;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_ttl {
    margin-bottom: 56px;
  }
}
#fv .new_open .new_open_ttl span {
  display: block;
  margin: 0 auto 5px;
  width: -moz-fit-content;
  width: fit-content;
}
#fv .new_open .new_open_ttl span img {
  display: block;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_ttl span img {
    max-width: 60px;
  }
}
#fv .new_open .new_open_ttl h2 {
  font-size: 38px;
  text-align: center;
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_ttl h2 {
    font-size: 24px;
  }
}
#fv .new_open .new_open_box {
  display: flex;
  gap: 50px;
  justify-content: center;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_box {
    flex-direction: column;
    gap: 25px;
  }
}
#fv .new_open .new_open_box .new_open_left {
  position: relative;
  z-index: 1;
}
#fv .new_open .new_open_box .new_open_left .open_date {
  position: absolute;
  max-width: 182px;
  width: 100%;
  z-index: -1;
  top: -10.4166666667vw;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_box .new_open_left .open_date {
    max-width: 110px;
    top: -23.0769230769vw;
  }
}
#fv .new_open .new_open_box .new_open_left img {
  max-width: 428px;
  width: 100%;
  margin-bottom: 30px;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_box .new_open_left img {
    margin-bottom: 0;
    margin-top: 10.2564102564vw;
  }
}
#fv .new_open .new_open_box .new_open_left p {
  background-color: var(--color-main);
  color: #fff;
  border-radius: 8px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_box .new_open_left p {
    font-size: 18px;
  }
}
#fv .new_open .new_open_box .new_open_left p span {
  font-family: Barlow;
  font-size: 32px;
  font-style: normal;
  font-weight: 500;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_box .new_open_left p span {
    font-size: 28px;
  }
}
#fv .new_open .new_open_box .new_open_right p {
  font-size: 18px;
}
#fv .new_open .new_open_box .new_open_right .gmap iframe {
  width: 470px;
  height: 290px;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  #fv .new_open .new_open_box .new_open_right .gmap iframe {
    width: 100%;
    height: 200px;
  }
}
#fv .consult-card {
  --consult-color-main: #4fb8ae;
  --consult-color-main-light: #eaf7f5;
  --consult-color-info-bg: #e9f5f8;
  --consult-color-badge-border: #e0a93c;
  --consult-color-badge-bg: #fdf6e8;
  --consult-color-badge-text: #c88a2a;
  --consult-color-title: #2f3b45;
  --consult-color-text: #4a555e;
  --consult-color-muted: #9aa4ac;
  --consult-color-free: #e04b4b;
  --consult-color-line: #e4e8ea;
  --consult-radius: 14px;
  max-width: 680px;
  width: 100%;
  margin: 40px auto 0;
  background: #fff;
  border: 2px solid var(--consult-color-main);
  border-radius: 20px;
  padding: 40px 32px;
  color: var(--consult-color-text);
  line-height: 1.7;
}
@media screen and (max-width: 599px) {
  #fv .consult-card {
    padding: 28px 18px;
  }
}
#fv .consult-card .consult-badge-wrap {
  text-align: center;
}
#fv .consult-card .consult-badge {
  display: inline-block;
  border: 1.5px solid var(--consult-color-badge-border);
  background: var(--consult-color-badge-bg);
  color: var(--consult-color-badge-text);
  font-size: 14px;
  font-weight: 700;
  padding: 5px 18px;
  border-radius: 999px;
}
#fv .consult-card .consult-title {
  text-align: center;
  color: var(--consult-color-title);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 18px 0 28px;
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-title {
    font-size: 24px;
  }
}
#fv .consult-card .consult-info {
  background: var(--consult-color-info-bg);
  border-radius: var(--consult-radius);
  padding: 18px 22px;
  font-size: 15px;
  margin-bottom: 24px;
}
#fv .consult-card .consult-info b {
  font-weight: 700;
  color: var(--consult-color-title);
}
#fv .consult-card .consult-campaign {
  border: 1.5px solid var(--consult-color-main);
  border-radius: var(--consult-radius);
  text-align: center;
  padding: 14px 16px;
  font-size: 17px;
  font-weight: 700;
  color: var(--consult-color-title);
  margin-bottom: 28px;
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-campaign {
    font-size: 15px;
  }
}
#fv .consult-card .consult-campaign .free {
  color: var(--consult-color-free);
}
#fv .consult-card .consult-list {
  list-style: none;
}
#fv .consult-card .consult-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 8px;
  border-bottom: 1px solid var(--consult-color-line);
  font-size: 15px;
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-list li {
    flex-wrap: wrap;
    font-size: 14px;
  }
}
#fv .consult-card .consult-list li.is-new {
  background: var(--consult-color-main-light);
  border-bottom-color: transparent;
}
#fv .consult-card .consult-list li.is-new .consult-date {
  color: var(--consult-color-main);
}
#fv .consult-card .consult-list li.is-new .consult-status {
  color: var(--consult-color-title);
  font-weight: 500;
}
#fv .consult-card .consult-list .consult-date {
  font-weight: 700;
  color: var(--consult-color-title);
  min-width: 82px;
}
#fv .consult-card .consult-list .consult-status {
  color: var(--consult-color-muted);
}
#fv .consult-card .consult-list .consult-new-badge {
  display: inline-block;
  background: var(--consult-color-main);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 5px;
  letter-spacing: 0.05em;
}
#fv .consult-card .consult-list-ttl {
  font-size: 15px;
  font-weight: 700;
  color: var(--consult-color-title);
  margin: 22px 0 6px;
  padding-left: 8px;
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-list-ttl {
    font-size: 14px;
    margin-top: 18px;
  }
}
#fv .consult-card .consult-list--done {
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: 24px;
       column-gap: 24px;
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-list--done {
    display: block;
  }
}
#fv .consult-card .consult-list--done li {
  padding: 10px 8px;
  font-size: 14px;
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-list--done li {
    font-size: 13px;
  }
}
#fv .consult-card .consult-list--done .consult-date {
  min-width: 72px;
}
#fv .consult-card .consult-time {
  font-weight: 700;
  color: var(--consult-color-title);
}
@media screen and (max-width: 599px) {
  #fv .consult-card .consult-time {
    width: 100%;
    padding-left: 8px;
  }
}
#fv .campaign-card {
  --campaign-color-main: #f2a900;
  max-width: 680px;
  width: 100%;
  margin: 32px auto 0;
  background: linear-gradient(135deg, #fffaf0, #fff);
  border: 2px solid var(--campaign-color-main);
  border-radius: 20px;
  padding: 40px 32px;
  text-align: center;
}
@media screen and (max-width: 599px) {
  #fv .campaign-card {
    padding: 28px 18px;
  }
}
#fv .campaign-card .campaign-badge-wrap {
  margin-bottom: 14px;
}
#fv .campaign-card .campaign-badge {
  display: inline-block;
  background: var(--campaign-color-main);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 6px 20px;
  border-radius: 999px;
  letter-spacing: 0.04em;
}
#fv .campaign-card .campaign-title {
  font-size: 26px;
  font-weight: 700;
  color: #2f3b45;
  letter-spacing: 0.03em;
  margin-bottom: 24px;
}
@media screen and (max-width: 599px) {
  #fv .campaign-card .campaign-title {
    font-size: 20px;
  }
}
#fv .campaign-card .campaign-price-list {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-bottom: 28px;
}
@media screen and (max-width: 599px) {
  #fv .campaign-card .campaign-price-list {
    flex-direction: column;
    gap: 14px;
  }
}
#fv .campaign-card .campaign-price-item {
  flex: 1;
  background: #fff;
  border: 1.5px solid #f6e2b3;
  border-radius: 14px;
  padding: 18px 12px;
}
#fv .campaign-card .campaign-price-label {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #4a555e;
  margin-bottom: 6px;
}
#fv .campaign-card .campaign-price-original {
  display: block;
  font-size: 16px;
  color: #9aa4ac;
  text-decoration: line-through;
  margin-bottom: 2px;
}
#fv .campaign-card .campaign-price-value {
  display: block;
  font-size: 40px;
  font-weight: 700;
  color: var(--campaign-color-main);
  line-height: 1.1;
  font-family: "Barlow", sans-serif;
}
#fv .campaign-card .campaign-price-value small {
  font-size: 18px;
  font-weight: 700;
  margin-left: 2px;
}
@media screen and (max-width: 599px) {
  #fv .campaign-card .campaign-price-value {
    font-size: 32px;
  }
}
#fv .campaign-card .campaign-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-main);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  padding: 12px 32px;
  border-radius: 999px;
  transition: opacity var(--transition);
}
#fv .campaign-card .campaign-link:hover {
  opacity: 0.8;
}

#image {
  background-color: var(--color-bg);
  padding-bottom: 90px;
}
@media screen and (max-width: 599px) {
  #image {
    padding: 40px 16px;
  }
}
#image .image_inner {
  max-width: 1340px;
  width: 100%;
  margin: 0 auto;
}

/*************************************************
Instagram（旧：症例の位置）
*************************************************/
#top_case {
  background-color: var(--color-bg);
  background-image: url(../images/top_case_bg.png);
  background-size: cover;
  background-repeat: no-repeat;
  padding: 120px 0;
  background-position: center;
}
@media screen and (max-width: 599px) {
  #top_case {
    padding: 60px 0;
    background-image: url(../images/top_case_bg_sp.png);
  }
}
#top_case .section_ttl {
  margin-bottom: 50px;
}
@media screen and (max-width: 599px) {
  #top_case .section_ttl {
    margin-bottom: 32px;
  }
}
@media screen and (max-width: 599px) {
  #top_case .insta_box {
    padding: 0 16px;
  }
}

/*************************************************
症例紹介（旧：Instagramの位置／院長紹介内）
*************************************************/
.top_case_block {
  position: relative;
}
.top_case_block .case_tret {
  position: absolute;
  left: 58.3333333333vw;
  top: 0vw;
}
@media screen and (max-width: 599px) {
  .top_case_block .case_tret {
    left: initial;
    right: 5.8974358974vw;
    width: 90px;
    top: 30px;
  }
}
.top_case_block .top_case {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 25px;
}
@media screen and (max-width: 599px) {
  .top_case_block .top_case {
    display: flex;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 16px;
    padding: 0 16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .top_case_block .top_case::-webkit-scrollbar {
    display: none;
  }
}
.top_case_block .top_case li {
  min-width: 0;
}
@media screen and (max-width: 599px) {
  .top_case_block .top_case li {
    flex: none;
    flex-shrink: 0;
    width: 56.4102564103vw;
  }
  .top_case_block .top_case li.js-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.top_case_block .top_case li a img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: contain;
     object-fit: contain;
  margin-bottom: 12px;
}
.top_case_block .top_case li a .case_box {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 8px;
}
.top_case_block .top_case li a .case_box .case_date {
  display: inline-block;
  color: #323232;
  font-size: 13px;
  font-weight: 500;
}
.top_case_block .top_case li a .case_box .case_category {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  color: #fff;
  background-color: #4bb8d4;
  border-radius: 999px;
  font-size: 12px;
  padding: 3px 15px;
}
.top_case_block .top_case li a .case_ttl {
  font-weight: 700;
  font-size: 16px;
  color: #323232;
}
.top_case_block .btn_01 {
  margin: 40px auto 0;
}

/*************************************************
もう少し様子を〜
*************************************************/
#worry {
  background-color: var(--color-bg);
  padding-top: 100px;
  padding-bottom: 100px;
}
@media screen and (max-width: 599px) {
  #worry {
    padding: 60px 0;
  }
}
#worry h2 {
  color: var(--color-text);
  font-size: 38px;
  text-align: center;
  font-weight: 700;
  margin-bottom: 50px;
}
@media screen and (max-width: 599px) {
  #worry h2 {
    font-size: 24px;
    margin-bottom: 30px;
  }
}
#worry h2 span {
  font-size: 32px;
  text-align: center;
  font-weight: 700;
}
@media screen and (max-width: 599px) {
  #worry h2 span {
    font-size: 20px;
  }
}
#worry .worry_content_01 {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  margin-bottom: 65px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_01 {
    padding: 0 13px;
    flex-direction: column;
    gap: 80px;
  }
}
#worry .worry_content_01 .left {
  position: relative;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_01 .left {
    width: 100%;
    min-width: 0;
  }
}
#worry .worry_content_01 .left .worry_treat {
  position: absolute;
  left: 0px;
  bottom: -11.1111111111vw;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_01 .left .worry_treat {
    right: 10px;
    max-width: 200px;
    width: 100%;
    left: initial;
    bottom: -80px;
  }
}
#worry .worry_content_01 .left ul {
  background-color: #fff;
  display: flex;
  width: 576px;
  padding: 40px 24px;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  border-radius: 12px;
  color: var(--color-text);
}
@media screen and (max-width: 599px) {
  #worry .worry_content_01 .left ul {
    width: 100%;
    padding: 40px 16px;
  }
}
#worry .worry_content_01 .left ul li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-weight: 700;
}
#worry .worry_content_01 .left ul li img {
  flex-shrink: 0;
  margin-top: 2px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_01 .right {
    width: 100%;
    min-width: 0;
  }
}
#worry .worry_content_02 {
  color: var(--color-text);
  margin-bottom: 115px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_02 {
    margin-bottom: 40px;
  }
}
#worry .worry_content_02 p {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  margin: 0 auto 15px;
  width: -moz-fit-content;
  width: fit-content;
}
#worry .worry_content_02 p span {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  text-align: center;
  border-bottom: 3px solid #4bb8d4;
  letter-spacing: 1.2px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_02 p span {
    font-size: 18px;
  }
}
#worry .worry_content_02 h3 {
  text-align: center;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 1.4px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_02 h3 {
    font-size: 20px;
  }
}
#worry .worry_content_02 h3 span {
  position: relative;
  z-index: 1;
  font-size: 38px;
  font-style: normal;
  font-weight: 700;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_02 h3 span {
    font-size: 28px;
  }
}
#worry .worry_content_02 h3 span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background-color: #ffef8e;
  filter: blur(12px);
  z-index: -1;
}
#worry .worry_content_03 {
  max-width: 1100px;
  width: 100%;
  margin-left: auto;
  margin-right: 0;
  margin-bottom: 60px;
  display: flex;
  align-items: center;
  gap: 28px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_03 {
    flex-direction: column-reverse;
    padding: 0 16px;
  }
}
#worry .worry_content_03 .left {
  max-width: 416px;
  width: 100%;
}
#worry .worry_content_03 .left p {
  margin-bottom: 24px;
  font-size: 16px;
  letter-spacing: 0.8px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_03 .left p {
    font-size: 14px;
    margin-bottom: 18px;
  }
}
#worry .worry_content_03 .left p:last-child {
  margin-bottom: 0;
}
#worry .worry_content_03 .right {
  position: relative;
  min-width: 0;
}
#worry .worry_content_03 .right .vertical {
  position: absolute;
  right: 0;
  top: -30px;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 16px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_03 .right .vertical {
    gap: 10px;
  }
}
#worry .worry_content_03 .right .vertical span {
  writing-mode: vertical-rl;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  color: #fff;
  background-color: var(--color-main);
  border-radius: 4px;
  display: inline-block;
  padding: 10px 0px;
  letter-spacing: 4px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_03 .right .vertical span {
    font-size: 22px;
  }
}
#worry .worry_content_04 {
  background-color: #fff;
  border-radius: 12px;
  padding: 40px 0;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 {
    padding: 40px 16px;
    margin: 0 16px;
  }
}
#worry .worry_content_04 .section_ttl h2 {
  font-size: 28px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .section_ttl h2 {
    font-size: 20px;
  }
}
#worry .worry_content_04 .flex_box {
  display: flex;
  gap: 48px;
  max-width: 990px;
  width: 100%;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 auto 40px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .flex_box {
    flex-direction: column;
    gap: 40px;
  }
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .flex_box .left {
    width: 100%;
    min-width: 0;
  }
}
#worry .worry_content_04 .flex_box .left .case_flex {
  display: flex;
  gap: 24px;
  margin-bottom: 5px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .flex_box .left .case_flex {
    gap: 8px;
  }
}
#worry .worry_content_04 .flex_box .left .case_flex img {
  display: block;
  max-width: 276px;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .flex_box .left .case_flex img {
    max-width: 160px;
  }
}
#worry .worry_content_04 .flex_box .left p {
  font-size: 14px;
}
#worry .worry_content_04 .flex_box .right {
  max-width: 368px;
  width: 100%;
  font-size: 15px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .flex_box .right {
    font-size: 14px;
  }
}
#worry .worry_content_04 .flex_box .right table,
#worry .worry_content_04 .flex_box .right tbody {
  display: block;
}
#worry .worry_content_04 .flex_box .right table tr,
#worry .worry_content_04 .flex_box .right tbody tr {
  padding: 7px 0;
  display: block;
  border-bottom: dotted #4bb8d4 3px;
}
#worry .worry_content_04 .flex_box .right table tr:first-child,
#worry .worry_content_04 .flex_box .right tbody tr:first-child {
  padding-top: 0;
}
#worry .worry_content_04 .flex_box .right table tr th,
#worry .worry_content_04 .flex_box .right tbody tr th {
  text-align: left;
  font-weight: 500;
  width: 100px;
}
#worry .worry_content_04 .risk {
  font-size: 12px;
  text-align: center;
  background-color: #eee;
  padding: 14px 75px;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 12px;
  margin: 0 auto 40px;
}
@media screen and (max-width: 599px) {
  #worry .worry_content_04 .risk {
    padding: 12px;
    text-align: left;
  }
}

/*************************************************
院長紹介
*************************************************/
#doctor {
  background-color: var(--color-bg);
  background-image: url(../images/top_doctor_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 135px;
  padding-bottom: 100px;
}
@media screen and (max-width: 599px) {
  #doctor {
    background-image: url(../images/top_doctor_bg_sp.png);
    padding-top: 80px;
    padding-bottom: 60px;
  }
}
#doctor .section_inner .section_ttl {
  margin-bottom: 56px;
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .section_ttl {
    margin-bottom: 32px;
  }
}
#doctor .section_inner .doctor_content {
  max-width: 990px;
  width: 100%;
  margin: 0 auto 80px;
  display: flex;
  justify-content: space-between;
  gap: 48px;
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .doctor_content {
    flex-direction: column-reverse;
    padding: 0 16px;
    gap: 32px;
  }
}
#doctor .section_inner .doctor_content .left {
  max-width: 577px;
  width: 100%;
}
#doctor .section_inner .doctor_content .left h3 {
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: 1.4px;
  margin-bottom: 24px;
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .doctor_content .left h3 {
    font-size: 22px;
  }
}
#doctor .section_inner .doctor_content .left p {
  font-size: 16px;
  margin-bottom: 20px;
}
#doctor .section_inner .doctor_content .left p:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .doctor_content .left p {
    font-size: 14px;
    margin-bottom: 18px;
  }
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .doctor_content .left .btn_01 {
    margin: 0 auto;
  }
}
#doctor .section_inner .doctor_content .right {
  max-width: 368px;
  width: 100%;
  position: relative;
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .doctor_content .right {
    max-width: 290px;
    margin: 0 auto;
  }
}
#doctor .section_inner .doctor_content .right .doctor_name {
  position: absolute;
  right: 8px;
  bottom: 85px;
  background-color: #fff;
  border-radius: 12px;
  padding: 5px 15px;
}
@media screen and (max-width: 599px) {
  #doctor .section_inner .doctor_content .right .doctor_name {
    bottom: 10px;
  }
}
#doctor .section_inner .doctor_content .right .doctor_name span {
  font-size: 13px;
  display: inline-block;
  text-align: center;
}
#doctor .section_inner .doctor_content .right .doctor_name p {
  font-size: 18px;
  text-align: center;
}
#doctor .section_inner .doctor_content .right .doctor_name .en_name {
  color: var(--color-main);
  display: inline-block;
  padding-left: 6px;
}
#doctor .section_inner .doctor_content .right .doctor_name .doctor {
  display: inline-block;
  padding-right: 6px;
}

/*************************************************
小児矯正　成長ステージに〜
*************************************************/
#stage {
  padding-top: 135px;
  background-color: #c0e6f1;
  padding-bottom: 100px;
  background-image: url(../images/stage_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (max-width: 599px) {
  #stage {
    background-image: url(../images/stage_bg_sp.png);
    padding-bottom: 60px;
    padding-top: 80px;
  }
}
#stage .stage_content_01 {
  max-width: 1100px;
  width: 100%;
  margin-left: auto;
  margin-right: 0;
  margin-bottom: 105px;
  display: flex;
  align-items: center;
  gap: 28px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_01 {
    flex-direction: column-reverse;
    padding: 0 16px;
    margin-bottom: 40px;
  }
}
#stage .stage_content_01 .left {
  max-width: 416px;
  width: 100%;
}
#stage .stage_content_01 .left p {
  margin-bottom: 24px;
  font-size: 16px;
  letter-spacing: 0.8px;
}
#stage .stage_content_01 .left p:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_01 .left p {
    font-size: 14px;
    margin-bottom: 18px;
  }
}
#stage .stage_content_01 .right {
  position: relative;
  min-width: 0;
}
#stage .stage_content_01 .right .vertical {
  position: absolute;
  right: 0;
  top: -30px;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 16px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_01 .right .vertical {
    gap: 8px;
  }
}
#stage .stage_content_01 .right .vertical span {
  writing-mode: vertical-rl;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  color: #fff;
  background-color: var(--color-main);
  border-radius: 4px;
  display: inline-block;
  padding: 10px 0px;
  letter-spacing: 4px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_01 .right .vertical span {
    font-size: 20px;
  }
}
#stage .stage_content_02 {
  margin-bottom: 96px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_02 {
    margin-bottom: 40px;
  }
}
#stage .stage_content_02 ul {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_02 ul {
    flex-direction: column;
    padding: 0 32px;
    gap: 32px;
  }
}
#stage .stage_content_02 ul li {
  max-width: 368px;
  width: 100%;
  min-height: 420px;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_02 ul li {
    min-height: auto;
  }
}
#stage .stage_content_02 ul li .stage_content_02_inner {
  padding: 20px 20px;
}
#stage .stage_content_02 ul li .stage_content_02_inner strong {
  color: var(--color-main);
  display: block;
  text-align: center;
  font-size: 24px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_02 ul li .stage_content_02_inner strong {
    font-size: 20px;
  }
}
@media screen and (max-width: 599px) {
  #stage .stage_content_02 ul li .stage_content_02_inner p {
    font-size: 14px;
  }
}
#stage .stage_content_02 ul li .stage_content_02_inner span {
  color: #fff;
  background-color: #c0c0c0;
  border-radius: 999px;
  display: block;
  padding: 2px 20px;
  font-size: 14px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 15px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 {
    padding: 0 16px;
  }
}
#stage .stage_content_03 h3 {
  font-size: 32px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 30px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 h3 {
    font-size: 23px;
    line-height: 1.6;
  }
}
#stage .stage_content_03 p {
  text-align: center;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 p {
    text-align: left;
    max-width: 250px;
    font-size: 14px;
  }
}
#stage .stage_content_03 ul {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 50px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 ul {
    flex-direction: column;
    gap: 32px;
  }
}
#stage .stage_content_03 ul .stage_illust {
  position: absolute;
  right: 0;
  bottom: 100%;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 ul .stage_illust {
    max-width: 88px;
  }
}
#stage .stage_content_03 ul li {
  max-width: 368px;
  width: 100%;
  padding: 20px 40px;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 ul li {
    max-width: 100%;
    margin: 0 auto;
    justify-content: center;
  }
}
#stage .stage_content_03 ul li h4 {
  font-size: 24px;
  text-align: center;
  padding-bottom: 3px;
  border-bottom: dotted #4bb8d4 4px;
  margin-bottom: 15px;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 ul li h4 {
    font-size: 20px;
  }
}
#stage .stage_content_03 ul li img {
  max-width: 185px;
  width: 100%;
  display: block;
  margin: 0 auto 15px;
}
#stage .stage_content_03 ul li p {
  text-align: left;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 ul li p {
    font-size: 14px;
    margin: 0 auto;
  }
}
#stage .stage_content_03 ul li .btn_01 {
  margin-top: 24px;
  padding: 10px 0;
}
@media screen and (max-width: 599px) {
  #stage .stage_content_03 ul li .btn_01 {
    margin: 24px auto 0;
  }
}

/*************************************************
大人矯正　大人になってから〜
*************************************************/
#adult {
  background-image: url(../images/adult_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 134px;
  background-color: #f8f8f5;
}
@media screen and (max-width: 599px) {
  #adult {
    background-image: url(../images/adult_bg_sp.png);
    padding-top: 80px;
  }
}
@media screen and (max-width: 599px) {
  #adult .section_inner {
    padding: 0 16px;
  }
}
#adult .section_inner h2 {
  font-size: 38px;
  text-align: center;
  font-weight: 700;
  letter-spacing: 3.8px;
  line-height: 1.5;
  margin-bottom: 56px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner h2 {
    font-size: 28px;
    margin-bottom: 32px;
    line-height: 1.6;
  }
}
#adult .section_inner .type {
  width: 100%;
  background-color: var(--color-bg);
  border-radius: 12px;
  padding: 40px 0;
  margin-bottom: 56px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type {
    padding: 40px 16px;
    margin-bottom: 40px;
  }
}
#adult .section_inner .type .type_inner {
  max-width: 990px;
  width: 100%;
  margin: 0 auto;
}
#adult .section_inner .type .type_inner h3 span {
  display: inline-block;
  width: 16px;
  height: 16px;
  aspect-ratio: 1/1;
  background: var(--02-main2, #4bb8d4);
  border-radius: 999px;
  margin-right: 16px;
}
#adult .section_inner .type .type_inner h3 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 40px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type .type_inner h3 {
    font-size: 22px;
    margin-bottom: 24px;
  }
}
#adult .section_inner .type .type_inner .flex_box {
  display: flex;
  gap: 48px;
  max-width: 990px;
  width: 100%;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 auto 40px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type .type_inner .flex_box {
    flex-direction: column;
    gap: 40px;
  }
}
#adult .section_inner .type .type_inner .flex_box .left .case_flex {
  display: flex;
  gap: 24px;
  margin-bottom: 5px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type .type_inner .flex_box .left .case_flex {
    gap: 8px;
  }
}
#adult .section_inner .type .type_inner .flex_box .left .case_flex img {
  display: block;
  max-width: 276px;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type .type_inner .flex_box .left .case_flex img {
    max-width: 159px;
  }
}
#adult .section_inner .type .type_inner .flex_box .left p {
  font-size: 14px;
}
#adult .section_inner .type .type_inner .flex_box .right {
  max-width: 368px;
  width: 100%;
  font-size: 15px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type .type_inner .flex_box .right {
    font-size: 14px;
  }
}
#adult .section_inner .type .type_inner .flex_box .right table,
#adult .section_inner .type .type_inner .flex_box .right tbody {
  display: block;
}
#adult .section_inner .type .type_inner .flex_box .right table tr,
#adult .section_inner .type .type_inner .flex_box .right tbody tr {
  padding: 7px 0;
  display: block;
  border-bottom: dotted #4bb8d4 3px;
}
#adult .section_inner .type .type_inner .flex_box .right table tr:first-child,
#adult .section_inner .type .type_inner .flex_box .right tbody tr:first-child {
  padding-top: 0;
}
#adult .section_inner .type .type_inner .flex_box .right table tr th,
#adult .section_inner .type .type_inner .flex_box .right tbody tr th {
  text-align: left;
  font-weight: 500;
  width: 100px;
}
#adult .section_inner .type .type_inner .risk {
  font-size: 12px;
  background-color: #fff;
  padding: 12px 16px;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 12px;
  margin: 20px auto 0px;
}
#adult .section_inner .btn_01 {
  margin: 0 auto;
  max-width: 300px;
}
#adult .section_inner .type_flex {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 48px;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type_flex {
    flex-direction: column;
    gap: 40px;
  }
}
#adult .section_inner .type_flex .type {
  display: flex;
  flex-direction: column;
  padding: 40px;
  margin-bottom: 0;
}
@media screen and (max-width: 599px) {
  #adult .section_inner .type_flex .type {
    width: 100%;
    min-width: 0;
  }
}
#adult .section_inner .type_flex .type .type_inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}
#adult .section_inner .type_flex .type .btn_01 {
  margin-top: auto;
}
#adult .section_inner .type_flex .type img {
  display: block;
  max-width: 224px;
  width: 100%;
  margin: 0 auto 24px;
}
#adult .section_inner .type_flex .type p {
  margin-bottom: 24px;
}

/*************************************************
特徴
*************************************************/
#features {
  background-image: url(../images/features_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 120px;
  padding-bottom: 90px;
}
@media screen and (max-width: 599px) {
  #features {
    background-image: url(../images/features_bg_sp.png);
    padding-bottom: 64px;
    padding-top: 20px;
  }
}
#features .section_ttl {
  margin-bottom: 56px;
}
@media screen and (max-width: 599px) {
  #features .section_ttl {
    margin-bottom: 32px;
    padding: 0 16px;
  }
}
#features .section_ttl h2 {
  line-height: 1.5;
}
@media screen and (max-width: 599px) {
  #features .section_ttl h2 {
    font-size: 26px;
  }
}
#features .features_content {
  display: flex;
  align-items: center;
  margin-right: 0;
  margin-left: auto;
  margin-bottom: 40px;
  justify-content: flex-end;
}
@media screen and (max-width: 599px) {
  #features .features_content {
    flex-direction: column-reverse;
  }
}
#features .features_content .features_text {
  position: relative;
  z-index: 1;
  margin-right: -100px;
  padding: 40px;
  max-width: 624px;
  width: 100%;
  background-color: #fff;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  #features .features_content .features_text {
    background-color: transparent;
    max-width: 100%;
    padding: 0 16px;
    margin: 0 auto;
  }
}
#features .features_content .features_text .num {
  position: absolute;
  top: -30px;
  left: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  font-family: "Barlow", sans-serif;
  border-radius: 50%;
  background-color: #ffef8e;
  color: var(--color-main);
  font-weight: 700;
  font-size: 28px;
}
@media screen and (max-width: 599px) {
  #features .features_content .features_text .num {
    width: 40px;
    height: 40px;
    left: 10px;
    top: 20px;
  }
}
#features .features_content .features_text h3 {
  font-size: 28px;
  font-weight: 700;
  line-height: 180%; /* 50.4px */
  letter-spacing: 1.4px;
  margin-bottom: 30px;
}
@media screen and (max-width: 599px) {
  #features .features_content .features_text h3 {
    font-size: 22px;
    margin-bottom: 16px;
    line-height: 1.5;
    padding-left: 50px;
    margin-top: 20px;
  }
}
#features .features_content .features_text p {
  line-height: 1.6;
}
@media screen and (max-width: 599px) {
  #features .features_content .features_text p {
    font-size: 14px;
  }
}
#features .features_content img {
  display: block;
  max-width: 693px;
  width: 100%;
}
@media screen and (max-width: 599px) {
  #features .features_content img {
    padding-left: 16px;
  }
}
#features .features_content.reverse {
  margin-left: 0;
  margin-right: auto;
  justify-content: flex-start;
  margin-bottom: 40px;
}
@media screen and (max-width: 599px) {
  #features .features_content.reverse {
    flex-direction: column;
  }
}
#features .features_content.reverse .features_text {
  margin-right: 0;
  margin-left: -100px;
}
@media screen and (max-width: 599px) {
  #features .features_content.reverse .features_text {
    margin-left: 0;
  }
}
@media screen and (max-width: 599px) {
  #features .features_content.reverse img {
    padding-right: 16px;
    padding-left: 0;
  }
}
@media screen and (max-width: 599px) {
  #features .top_banner {
    width: 92%;
  }
}

/*************************************************
初めての方へ
*************************************************/
#first {
  background-color: #c0e6f1;
  background-image: url(../images/first_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 134px;
}
@media screen and (max-width: 599px) {
  #first {
    background-image: url(../images/first_bg_sp.png);
    padding-top: 80px;
  }
}
@media screen and (max-width: 599px) {
  #first .section_inner {
    padding: 0 16px;
  }
}
#first .section_inner h2 {
  text-align: center;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 56px;
}
@media screen and (max-width: 599px) {
  #first .section_inner h2 {
    font-size: 26px;
    margin-bottom: 32px;
  }
}
#first .section_inner .first_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 990px;
  width: 100%;
  margin: 0 auto 56px;
}
@media screen and (max-width: 599px) {
  #first .section_inner .first_inner {
    flex-direction: column;
    gap: 32px;
  }
}
#first .section_inner .first_inner img {
  display: block;
  max-width: 368px;
  width: 100%;
}
#first .section_inner .first_inner .first_text {
  max-width: 567px;
  width: 100%;
}
#first .section_inner .first_inner .first_text p {
  margin-bottom: 15px;
}
@media screen and (max-width: 599px) {
  #first .section_inner .first_inner .first_text p {
    font-size: 14px;
  }
}
#first .section_inner .first_inner .first_text a {
  padding: 10px 0;
}
@media screen and (max-width: 599px) {
  #first .section_inner .first_inner .first_text a {
    margin: 30px auto 0px;
  }
}
#first .section_inner .yoyaku_btn {
  margin-bottom: 80px;
}

#slide {
  overflow: hidden;
  padding: 60px 0;
}
#slide .slide {
  display: flex;
  align-items: flex-start;
  width: -moz-max-content;
  width: max-content;
  gap: 24px;
  animation: slide-loop 30s linear infinite;
}
#slide .slide li {
  flex-shrink: 0;
}
#slide .slide li img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
}
#slide .slide li:nth-child(6n+1) {
  width: 220px;
  height: 280px;
  margin-top: 40px;
}
#slide .slide li:nth-child(6n+2) {
  width: 300px;
  height: 200px;
  margin-top: 0;
}
#slide .slide li:nth-child(6n+3) {
  width: 260px;
  height: 340px;
  margin-top: 60px;
}
#slide .slide li:nth-child(6n+4) {
  width: 320px;
  height: 240px;
  margin-top: 20px;
}
#slide .slide li:nth-child(6n+5) {
  width: 240px;
  height: 300px;
  margin-top: 0;
}
#slide .slide li:nth-child(6n+6) {
  width: 280px;
  height: 220px;
  margin-top: 50px;
}

@keyframes slide-loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/*------------------------------------------------
フォントサイズ
------------------------------------------------*/
.under-content_wrap div,
.under-content_wrap p,
.under-content_wrap li,
.under-content_wrap dt,
.under-content_wrap dd,
.under-content_wrap th,
.under-content_wrap td,
.under-content_wrap a,
.post-content_wrap div,
.post-content_wrap p,
.post-content_wrap li,
.post-content_wrap dt,
.post-content_wrap dd,
.post-content_wrap th,
.post-content_wrap td,
.post-content_wrap a {
  font-size: 1.6rem;
  line-height: 1.8;
  font-weight: 500;
  letter-spacing: 1px;
  color: var(--color-text-sub);
}
@media screen and (max-width: 599px) {
  .under-content_wrap div,
  .under-content_wrap p,
  .under-content_wrap li,
  .under-content_wrap dt,
  .under-content_wrap dd,
  .under-content_wrap th,
  .under-content_wrap td,
  .under-content_wrap a,
  .post-content_wrap div,
  .post-content_wrap p,
  .post-content_wrap li,
  .post-content_wrap dt,
  .post-content_wrap dd,
  .post-content_wrap th,
  .post-content_wrap td,
  .post-content_wrap a {
    font-size: 1.4rem;
    letter-spacing: 0px;
  }
}
.under-content_wrap iframe,
.post-content_wrap iframe {
  border-radius: 12px;
}

/*------------------------------------------------
sub_fv
------------------------------------------------*/
.sub_fv {
  width: 100%;
  position: relative;
  padding: 90px 50px 0px 50px;
}
@media screen and (max-width: 599px) {
  .sub_fv {
    padding: 10px 10px 0px 10px;
  }
}
.sub_fv__bg {
  height: 400px;
  background-size: cover;
  background-position: center center;
}
@media screen and (max-width: 599px) {
  .sub_fv__bg--pc {
    display: none;
  }
}
.sub_fv__bg--sp {
  display: none;
  height: auto;
  aspect-ratio: 358/380;
}
@media screen and (max-width: 599px) {
  .sub_fv__bg--sp {
    display: block;
  }
}
.sub_fv__copy {
  text-shadow: 0 -4px 10px rgba(255, 255, 255, 0.8), -4px 0 10px rgba(255, 255, 255, 0.8), 0 4px 10px rgba(255, 255, 255, 0.8), 4px 0 10px rgba(255, 255, 255, 0.8);
  font-size: 38px;
  font-weight: 700;
  line-height: 100%; /* 38px */
  letter-spacing: 3.8px;
  position: absolute;
  top: 50%;
  left: 50px;
  right: 50px;
  padding: 0 15rem;
}
@media screen and (max-width: 599px) {
  .sub_fv__copy {
    left: 10px;
    right: 10px;
    padding: 0 3rem;
  }
}
.sub_fv__copy h1 {
  display: inline-block;
  font-size: 4rem;
  font-weight: 700;
  letter-spacing: 1.3px;
  line-height: 1.5;
  text-align: left;
}
@media screen and (max-width: 599px) {
  .sub_fv__copy h1 {
    font-size: 2.4rem;
    letter-spacing: 1.3px;
    line-height: 1.2;
  }
}

/*------------------------------------------------
パンくず
------------------------------------------------*/
.bread {
  padding: 10px 0;
  font-weight: 500;
}
.bread .inner {
  padding: 0.6944444444vw 50px 0vw 50px;
}
@media screen and (max-width: 599px) {
  .bread .inner {
    padding: 0.6944444444vw 10px 0vw 10px;
  }
}
.bread .inner ul {
  display: flex;
  flex-wrap: wrap;
  row-gap: 0.4rem;
}
.bread .inner ul li {
  display: flex;
  align-items: center;
  font-size: 1.2rem;
  color: var(--color-text);
}
.bread .inner ul li a {
  font-size: 1.2rem;
  line-height: 1;
  color: var(--color-text-sub);
  border-bottom: 0.8px solid #C0C0C0;
}
.bread .inner ul li:not(:last-child)::after {
  content: "／";
  flex-shrink: 0;
  margin: 0 10px;
}
.bread .inner ul li:last-child {
  color: #C0C0C0;
}

/*------------------------------------------------
下層ページ共通リンク色
（フロントページを除く下層ページ全体に適用。ホバーは_common.scssの共通ルールを流用）
------------------------------------------------*/
.under-content_wrap a:not(.btn_01):not(.btn_02):not(.web):not(.tel):not(.page-numbers),
.post-content_wrap a:not(.btn_01):not(.btn_02):not(.web):not(.tel):not(.page-numbers) {
  color: var(--color-text);
}

.under-content_wrap .web p,
.post-content_wrap .web p {
  color: #fff;
}

.under-content_wrap {
  padding: 105px 0 0 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap {
    padding: 75px 16px 0 16px;
  }
}
.under-content_wrap .section_inner {
  padding-bottom: 8rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .section_inner {
    padding-bottom: 5rem;
  }
}
.under-content_wrap .section_inner .content_wrap {
  margin-bottom: 6rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .section_inner .content_wrap {
    margin-bottom: 4rem;
  }
}
.under-content_wrap .section_inner .content_wrap:last-child {
  margin-bottom: 0;
}
.under-content_wrap .section_inner .content_wrap img {
  width: 100%;
  height: auto;
  display: block;
}
.under-content_wrap h2 {
  position: relative;
  font-size: 3.4rem;
  font-weight: 700;
  margin-bottom: 4rem;
  background-color: var(--color-bg-blue);
  border-radius: 10px;
  letter-spacing: 3.8px;
  padding: 0.5rem 2rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap h2 {
    font-size: 2.4rem;
    margin-bottom: 2.4rem;
    line-height: 140%; /* 39.2px */
    padding: 1.5rem 2rem;
  }
}
.under-content_wrap p + h2 {
  margin-top: 4rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap p + h2 {
    margin-top: 2.4rem;
  }
}
.under-content_wrap h2.ttl-price {
  font-size: 2.4rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  background-color: transparent;
  border-radius: 0;
  padding: 0;
  margin-bottom: 2rem;
  letter-spacing: 1.2px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap h2.ttl-price {
    font-size: 2rem;
  }
}
.under-content_wrap h2.ttl-price::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  background-color: var(--color-main);
  border-radius: 50%;
}
.under-content_wrap .price-note {
  margin-top: 2.4rem;
  padding: 2.4rem 3rem;
  background-color: #f5f5f3;
  border-radius: 10px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .price-note {
    margin-top: 2rem;
    padding: 2rem;
  }
}
.under-content_wrap .price-note .price-note__ttl {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
}
.under-content_wrap .price-note .price-note__ttl::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  background-color: var(--color-main);
  border-radius: 50%;
}
.under-content_wrap .price-note .price-note__list {
  list-style: none;
}
.under-content_wrap .price-note .price-note__list li {
  display: flex;
  gap: 0.8rem;
}
.under-content_wrap .price-note .price-note__list li:not(:last-child) {
  margin-bottom: 0.4rem;
}
.under-content_wrap .price-note .price-note__list li::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  margin-top: 1.1rem;
  background-color: var(--color-main);
  border-radius: 50%;
}
.under-content_wrap h3 {
  display: flex;
  align-items: stretch;
  gap: 1.2rem;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 1.4px;
  margin-top: 4rem;
  margin-bottom: 3rem;
}
.under-content_wrap h3::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 4px;
  background-color: var(--color-main);
  border-radius: 5px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap h3 {
    font-size: 2.2rem;
    margin-top: 2.4rem;
    margin-bottom: 2rem;
  }
}
.under-content_wrap h4 {
  position: relative;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 1.1px;
  padding-left: 1rem;
  border-bottom: 1px solid var(--color-gray);
  margin-top: 3rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap h4 {
    font-size: 1.6rem;
    margin-top: 2rem;
    margin-bottom: 1.8rem;
  }
}
.under-content_wrap {
  /*------------------------------------------------
  画像テキストの横並び
  ------------------------------------------------*/
}
.under-content_wrap .flex-wrap,
.under-content_wrap .flex-wrap--reverse {
  display: flex;
  gap: 4rem;
  align-items: flex-start;
  margin-bottom: 5rem;
}
.under-content_wrap .flex-wrap:last-child,
.under-content_wrap .flex-wrap--reverse:last-child {
  margin-bottom: 0;
}
.under-content_wrap .flex-wrap:has(+ p),
.under-content_wrap .flex-wrap--reverse:has(+ p) {
  margin-bottom: 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-wrap,
  .under-content_wrap .flex-wrap--reverse {
    flex-direction: column;
    gap: 2rem;
  }
}
.under-content_wrap .flex-wrap .flex-img,
.under-content_wrap .flex-wrap--reverse .flex-img {
  width: 40%;
  flex-shrink: 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-wrap .flex-img,
  .under-content_wrap .flex-wrap--reverse .flex-img {
    width: 100%;
  }
}
.under-content_wrap .flex-wrap .flex-img figure,
.under-content_wrap .flex-wrap--reverse .flex-img figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.under-content_wrap .flex-wrap .flex-img img,
.under-content_wrap .flex-wrap--reverse .flex-img img {
  width: 100%;
  height: auto;
  display: block;
}
.under-content_wrap .flex-wrap .flex-img--profile figure,
.under-content_wrap .flex-wrap--reverse .flex-img--profile figure {
  position: relative;
  margin: 0;
}
.under-content_wrap .flex-wrap .flex-img--profile figcaption,
.under-content_wrap .flex-wrap--reverse .flex-img--profile figcaption {
  position: absolute;
  right: 8px;
  bottom: 16px;
  background-color: #fff;
  border-radius: 12px;
  padding: 5px 15px;
}
.under-content_wrap .flex-wrap .flex-img--profile figcaption span,
.under-content_wrap .flex-wrap--reverse .flex-img--profile figcaption span {
  font-size: 13px;
  display: inline-block;
  text-align: center;
}
.under-content_wrap .flex-wrap .flex-img--profile figcaption p,
.under-content_wrap .flex-wrap--reverse .flex-img--profile figcaption p {
  font-size: 18px;
  text-align: center;
}
.under-content_wrap .flex-wrap .flex-img--profile figcaption .en_name,
.under-content_wrap .flex-wrap--reverse .flex-img--profile figcaption .en_name {
  display: inline-block;
  padding-left: 6px;
  color: var(--color-main);
}
.under-content_wrap .flex-wrap .flex-img--profile figcaption .doctor,
.under-content_wrap .flex-wrap--reverse .flex-img--profile figcaption .doctor {
  display: inline-block;
  padding-right: 6px;
}
.under-content_wrap .flex-wrap .flex-txt,
.under-content_wrap .flex-wrap--reverse .flex-txt {
  flex: 1;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-wrap .flex-txt,
  .under-content_wrap .flex-wrap--reverse .flex-txt {
    width: 100%;
  }
}
.under-content_wrap .flex-wrap .flex-txt .ttl,
.under-content_wrap .flex-wrap--reverse .flex-txt .ttl {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 1.3px;
  margin-bottom: 1.5rem;
  background: none;
  padding: 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-wrap .flex-txt .ttl,
  .under-content_wrap .flex-wrap--reverse .flex-txt .ttl {
    font-size: 1.6rem;
  }
}
.under-content_wrap .flex-wrap .flex-txt p,
.under-content_wrap .flex-wrap--reverse .flex-txt p {
  font-size: 1.5rem;
  line-height: 1.8;
}
.under-content_wrap .flex-wrap .flex-txt--bullet p,
.under-content_wrap .flex-wrap--reverse .flex-txt--bullet p {
  padding-left: 1.6em;
  text-indent: -1.6em;
  border-bottom: 1px solid #ddd;
  padding-bottom: 1rem;
}
.under-content_wrap .flex-wrap .flex-txt--bullet p::before,
.under-content_wrap .flex-wrap--reverse .flex-txt--bullet p::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M2 7l3.5 3.5L12 4' stroke='%23F39800' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  margin-right: 0.4em;
  vertical-align: -2px;
}
.under-content_wrap .flex-wrap--reverse {
  flex-direction: row-reverse;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-wrap--reverse {
    flex-direction: column;
  }
}
.under-content_wrap {
  /*------------------------------------------------
  署名（院長名など）
  ------------------------------------------------*/
}
.under-content_wrap .doctor-sign {
  display: block;
  text-align: right;
  font-family: "Shippori Mincho B1", serif;
  font-size: 1.8rem;
  font-weight: 700;
  margin-top: 1rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .doctor-sign {
    font-size: 1.6rem;
  }
}
.under-content_wrap {
  /*------------------------------------------------
  症例写真（施術前・施術後を並べる）
  ------------------------------------------------*/
}
.under-content_wrap .case-photos {
  display: flex;
  gap: 2rem;
  margin-bottom: 3rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .case-photos {
    gap: 1.2rem;
  }
}
.under-content_wrap .case-photos__item {
  flex: 1;
  overflow: hidden;
  border-radius: 10px;
}
.under-content_wrap .case-photos__item img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.under-content_wrap {
  /*------------------------------------------------
  ピックアップ
  ------------------------------------------------*/
}
.under-content_wrap .pickup {
  background: #F5F5EE;
  padding: 4.5rem 8rem;
  border-radius: 10px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .pickup {
    padding: 2rem 2rem;
  }
}
.under-content_wrap .pickup__title {
  display: flex;
  gap: 1rem;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.9px;
  margin-bottom: 3rem;
}
.under-content_wrap .pickup__title::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background-color: var(--color-main);
  border-radius: 50px;
  margin-top: 1.5rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .pickup__title::before {
    width: 10px;
    height: 10px;
  }
}
@media screen and (max-width: 599px) {
  .under-content_wrap .pickup__title {
    font-size: 2rem;
    margin-bottom: 2rem;
  }
}
.under-content_wrap .pickup__body {
  display: flex;
  gap: 4rem;
  align-items: flex-start;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .pickup__body {
    flex-direction: column;
    gap: 2rem;
  }
}
.under-content_wrap .pickup__img {
  width: 315px;
  flex-shrink: 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .pickup__img {
    width: 100%;
  }
}
.under-content_wrap .pickup__img img {
  width: 100%;
  height: auto;
  display: block;
}
.under-content_wrap .pickup__txt {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 1.8;
}
.under-content_wrap {
  /*------------------------------------------------
  施術の流れ
  ------------------------------------------------*/
}
.under-content_wrap .flow {
  position: relative;
  isolation: isolate;
  max-width: 1000px;
  margin: 0 auto;
}
.under-content_wrap .flow__list {
  list-style: none;
}
.under-content_wrap .flow__item {
  display: flex;
  gap: 30px;
  align-items: stretch;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__item {
    gap: 15px;
  }
}
.under-content_wrap .flow__item:last-child .flow__step-line {
  display: none;
}
.under-content_wrap .flow__item:last-child .flow__body {
  padding-bottom: 0;
}
.under-content_wrap .flow__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 70px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__step {
    width: 55px;
  }
}
.under-content_wrap .flow__step-badge {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: #FFEF8E;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__step-badge {
    width: 55px;
    height: 55px;
  }
}
.under-content_wrap .flow__step-label {
  font-family: "Barlow", sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  letter-spacing: 0.07em;
  color: var(--color-main);
  line-height: 90%;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__step-label {
    font-size: 1rem;
  }
}
.under-content_wrap .flow__step-num {
  font-family: "Barlow", sans-serif;
  font-weight: 700;
  font-size: 4rem;
  color: var(--color-main);
  line-height: 90%;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__step-num {
    font-size: 2.6rem;
  }
}
.under-content_wrap .flow__step-line {
  width: 2px;
  flex: 1;
  min-height: 40px;
  background: #FFEF8E;
}
.under-content_wrap .flow__body {
  flex: 1;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding-bottom: 60px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__body {
    flex-direction: column;
    padding-bottom: 40px;
  }
}
.under-content_wrap .flow__content {
  flex: 1;
}
.under-content_wrap .flow__head {
  margin-bottom: 20px;
}
.under-content_wrap .flow__ttl {
  font-size: 2.4rem;
  font-weight: 700;
}
.under-content_wrap .flow__txt {
  flex: 1;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.075em;
  line-height: 1.8;
}
.under-content_wrap .flow__img {
  width: 350px;
  flex-shrink: 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__img {
    width: 100%;
  }
}
.under-content_wrap .flow__img img {
  width: 100%;
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 8px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flow__img img {
    height: auto;
    aspect-ratio: 16/9;
  }
}
.under-content_wrap {
  /*------------------------------------------------
  横並びボックス
  ------------------------------------------------*/
}
.under-content_wrap .flex-box {
  display: flex;
  gap: 4.8rem;
  flex-wrap: wrap;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-box {
    flex-direction: column;
    gap: 2.4rem;
  }
}
.under-content_wrap .flex-box .flex-item {
  flex: 0 0 calc((100% - 9.6rem) / 3);
  box-shadow: 0 2px 10px 0 rgba(54, 1, 1, 0.15);
  border: 1px solid rgba(54, 1, 1, 0.1);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  gap: 2rem;
  display: flex;
  flex-direction: column;
  padding: 2rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-box .flex-item {
    flex: 1 1 100%;
    gap: 1rem;
  }
}
.under-content_wrap .flex-box .flex-item img {
  width: 100%;
  display: block;
}
.under-content_wrap .flex-box .flex-item .ttl {
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--color-main);
  text-align: center;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-box .flex-item .ttl {
    padding: 0 1.5rem;
    font-size: 1.8rem;
  }
}
.under-content_wrap .flex-box .flex-item .txt {
  font-size: 1.4rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-box .flex-item .txt {
    padding: 0 1.5rem 1.5rem;
  }
}
.under-content_wrap .flex-box--2col {
  display: flex;
  gap: 4.8rem;
  flex-wrap: wrap;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-box--2col {
    gap: 1rem;
  }
}
.under-content_wrap .flex-box--2col .flex-item {
  flex: 0 0 calc((100% - 2rem) / 2);
  padding: 3rem;
  box-shadow: 0 0 10px 0 rgba(89, 87, 87, 0.15);
  gap: 2rem;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .flex-box--2col .flex-item {
    flex: 1 1 100%;
    padding: 1.5rem;
    gap: 1rem;
  }
}
.under-content_wrap .flex-box--2col .flex-item img {
  width: 100%;
}
.under-content_wrap .flex-box--2col .flex-item .ttl {
  font-weight: 700;
  color: var(--color-main);
  text-align: center;
}
.under-content_wrap .flex-box--2col .flex-item .txt {
  font-size: 1.4rem;
}
.under-content_wrap {
  /*------------------------------------------------
  チェックリスト
  ------------------------------------------------*/
}
.under-content_wrap .under-check,
.under-content_wrap .under-check02 {
  padding: 3rem 4rem;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  border-radius: 8px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .under-check,
  .under-content_wrap .under-check02 {
    padding: 2.5rem 2rem;
    gap: 1.5rem;
  }
}
.under-content_wrap .under-check li,
.under-content_wrap .under-check02 li {
  display: flex;
  align-items: flex-start;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.75px;
  line-height: 1.8;
}
.under-content_wrap .under-check__item,
.under-content_wrap .under-check02__item {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.under-content_wrap .under-check__item-ttl,
.under-content_wrap .under-check02__item-ttl {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.75px;
  line-height: 1.8;
}
.under-content_wrap .under-check__item-txt,
.under-content_wrap .under-check02__item-txt {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
  color: var(--color-text-sub);
}
.under-content_wrap .under-check a,
.under-content_wrap .under-check02 a {
  color: var(--color-main);
  text-decoration: underline;
}
.under-content_wrap .under-check__ttl,
.under-content_wrap .under-check02__ttl {
  font-size: 1.8rem;
  color: var(--color-main);
  font-weight: 700;
  margin-bottom: 0.4rem;
  font-family: "Shippori Mincho B1", serif;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .under-check__ttl,
  .under-content_wrap .under-check02__ttl {
    font-size: 1.6rem;
  }
}
.under-content_wrap .under-check {
  background: #eee;
}
.under-content_wrap .under-check li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M17.6542 2.47947C17.1931 2.01856 16.4461 2.01856 15.9851 2.47947L8.4648 9.99782L5.90647 7.44014C5.44544 6.97923 4.69841 6.97923 4.23737 7.44014C3.77634 7.90106 3.77634 8.64789 4.23737 9.1088L7.63025 12.5008C7.85217 12.7227 8.15223 12.8461 8.4648 12.8461C8.77736 12.8461 9.07742 12.7211 9.29934 12.5008L17.6542 4.14813C18.1152 3.68722 18.1152 2.94039 17.6542 2.47947Z' fill='%234BB8D4'/%3E%3Cpath d='M16.308 7.56209C15.6563 7.56209 15.1281 8.09019 15.1281 8.74172V12.8649C15.1281 14.1102 14.1138 15.1242 12.8682 15.1242H4.61969C3.37412 15.1242 2.35985 14.1102 2.35985 12.8649V4.6185C2.35985 3.37326 3.37412 2.35925 4.61969 2.35925H14.1732C14.8249 2.35925 15.3531 1.83115 15.3531 1.17962C15.3531 0.528097 14.8249 0 14.1732 0H4.61969C2.07229 0 0 2.07176 0 4.6185V12.8649C0 15.4117 2.07229 17.4834 4.61969 17.4834H12.8682C15.4156 17.4834 17.4879 15.4117 17.4879 12.8649V8.74172C17.4879 8.09019 16.9597 7.56209 16.308 7.56209Z' fill='%234BB8D4'/%3E%3C/svg%3E");
  display: block;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-right: 1.2rem;
  margin-top: 0.5rem;
}
.under-content_wrap .under-check--no-bg {
  background: none;
  padding: 0;
}
.under-content_wrap .under-check02 {
  background: var(--color-bg);
}
.under-content_wrap .under-check02 li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20Z' fill='%234BB8D4'/%3E%3Cpath d='M11.7401 4.34134L11.3435 11.675C11.3053 12.379 10.7234 12.9301 10.0185 12.9301H9.97887C9.274 12.9301 8.69215 12.379 8.65393 11.675L8.25735 4.34134C8.21624 3.58146 8.82125 2.94287 9.58229 2.94287H10.4154C11.1764 2.94287 11.7814 3.58146 11.7403 4.34134H11.7401Z' fill='white'/%3E%3Cpath d='M9.99853 14.0752H9.99824C9.16418 14.0752 8.48804 14.7513 8.48804 15.5854V15.5857C8.48804 16.4198 9.16418 17.0959 9.99824 17.0959H9.99853C10.8326 17.0959 11.5087 16.4198 11.5087 15.5857V15.5854C11.5087 14.7513 10.8326 14.0752 9.99853 14.0752Z' fill='white'/%3E%3C/svg%3E");
  display: block;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-right: 1.2rem;
  margin-top: 0.5rem;
}
.under-content_wrap {
  /*------------------------------------------------
  リスト
  ------------------------------------------------*/
}
.under-content_wrap .under-list {
  background: var(--color-bg-blue);
  padding: 3rem 4rem;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  border-radius: 8px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .under-list {
    padding: 2.5rem 2rem;
    gap: 1.5rem;
  }
}
.under-content_wrap .under-list li {
  display: flex;
  align-items: flex-start;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.75px;
  line-height: 1.8;
}
.under-content_wrap .under-list li::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 10px;
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 1.2rem;
  background: var(--color-main);
  border-radius: 50px;
}
.under-content_wrap .under-list__item {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.under-content_wrap .under-list__item-ttl {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.75px;
  line-height: 1.8;
}
.under-content_wrap .under-list__item-txt {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
  color: var(--color-text-sub);
}
.under-content_wrap .under-list a {
  color: var(--color-main);
  text-decoration: underline;
}
.under-content_wrap .under-list__ttl {
  font-size: 1.8rem;
  color: var(--color-main);
  font-weight: 700;
  margin-bottom: 0.4rem;
  font-family: "Shippori Mincho B1", serif;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .under-list__ttl {
    font-size: 1.6rem;
  }
}
.under-content_wrap .under-list--no-bg {
  background: none;
  padding: 0;
}
.under-content_wrap {
  /*------------------------------------------------
  メリット・デメリット
  ------------------------------------------------*/
}
.under-content_wrap .merit-demerit {
  display: flex;
  gap: 2rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .merit-demerit {
    flex-direction: column;
  }
}
.under-content_wrap .merit-demerit__item {
  flex: 1;
  padding: 2.7rem 3.3rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .merit-demerit__item {
    padding: 2rem;
  }
}
.under-content_wrap .merit-demerit__item--merit {
  background: #F8F8F5;
  border-radius: 10px;
}
.under-content_wrap .merit-demerit__item--merit .merit-demerit__head {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Ccircle cx='2' cy='2' r='2' fill='%234BB8D4'/%3E%3C/svg%3E");
}
.under-content_wrap .merit-demerit__item--merit .merit-demerit__icon {
  -webkit-text-stroke-width: 2px;
  -webkit-text-stroke-color: var(--color-main);
}
.under-content_wrap .merit-demerit__item--demerit {
  background: #EEE;
  border-radius: 10px;
}
.under-content_wrap .merit-demerit__item--demerit .merit-demerit__head {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Ccircle cx='2' cy='2' r='2' fill='%23C0C0C0'/%3E%3C/svg%3E");
}
.under-content_wrap .merit-demerit__item--demerit .merit-demerit__icon {
  -webkit-text-stroke-width: 1.5px;
  -webkit-text-stroke-color: var(--color-gray);
}
.under-content_wrap .merit-demerit__head {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.9px;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  background-repeat: repeat-x;
  background-position: left bottom;
}
.under-content_wrap .merit-demerit__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.under-content_wrap .merit-demerit__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.7px;
  line-height: 1.8;
}
.under-content_wrap .merit-demerit__list li::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 9px;
  background: var(--color-main);
}
.under-content_wrap {
  /*------------------------------------------------
  ギャラリー
  ------------------------------------------------*/
}
.under-content_wrap .gallery__main {
  position: relative;
  margin-bottom: 1rem;
}
.under-content_wrap .gallery__main .swiper-slide img {
  width: 100%;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .gallery__main .swiper-slide img {
    border-radius: 8px;
  }
}
.under-content_wrap .gallery__main .swiper-button-prev,
.under-content_wrap .gallery__main .swiper-button-next {
  color: #fff;
  background: rgba(0, 0, 0, 0.35);
  width: 44px;
  height: 44px;
  border-radius: 50%;
}
.under-content_wrap .gallery__main .swiper-button-prev::after,
.under-content_wrap .gallery__main .swiper-button-next::after {
  font-size: 1.6rem;
}
.under-content_wrap .gallery__thumbs .swiper-slide {
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.2s;
}
.under-content_wrap .gallery__thumbs .swiper-slide img {
  width: 100%;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .gallery__thumbs .swiper-slide img {
    border-radius: 8px;
  }
}
.under-content_wrap .gallery__thumbs .swiper-slide-thumb-active {
  opacity: 1;
}
.under-content_wrap {
  /*------------------------------------------------
  初めての方へ
  ------------------------------------------------*/
}
.under-content_wrap .consult-detail {
  display: flex;
  gap: 1.5rem;
  margin-top: 2rem;
  margin-bottom: 6rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .consult-detail {
    gap: 1rem;
    margin-bottom: 4rem;
  }
}
.under-content_wrap .consult-detail__item {
  flex: 1;
  background: var(--color-bg);
  color: var(--color-main);
  text-align: center;
  padding: 1.5rem 2rem;
  border-radius: 8px;
}
.under-content_wrap .consult-detail .ttl {
  font-size: 1.4rem;
  font-weight: 500;
  background: var(--color-main);
  color: #fff;
  display: inline-block;
  padding: 0 1rem;
  border-radius: 5px;
}
.under-content_wrap .consult-detail .main {
  font-size: 4rem;
  font-weight: 700;
  color: var(--color-main);
}
@media screen and (max-width: 599px) {
  .under-content_wrap .consult-detail .main {
    font-size: 2.8rem;
  }
}
.under-content_wrap .consult-detail .main small {
  font-size: 2.8rem;
  color: var(--color-text);
}
@media screen and (max-width: 599px) {
  .under-content_wrap .consult-detail .main small {
    font-size: 1.8rem;
  }
}
.under-content_wrap .consult-detail p + p {
  margin-top: 0.5rem;
}
.under-content_wrap {
  /*------------------------------------------------
  よくある質問
  ------------------------------------------------*/
}
.under-content_wrap .faq {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--color-bg);
  padding: 6rem 0;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .faq {
    padding: 2.5rem 0;
  }
}
.under-content_wrap .faq__inner {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 4rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .faq__inner {
    padding: 0 2rem;
    gap: 1.5rem;
  }
}
.under-content_wrap .faq h2 {
  margin-bottom: 0;
}
.under-content_wrap .faq h3 {
  font-size: 2.4rem;
  color: var(--color-main);
  margin-top: 0;
  margin-bottom: 1rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .faq h3 {
    font-size: 2rem;
  }
}
.under-content_wrap .faq h3::before {
  display: none;
}
.under-content_wrap .faq__item {
  background: #fff;
  border-radius: 8px;
  padding: 2.5rem;
}
@media screen and (max-width: 599px) {
  .under-content_wrap .faq__item {
    padding: 2rem;
  }
}

/*************************************************
投稿一覧ページ
*************************************************/
.post-content_wrap .section_inner {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 6rem;
  padding: 105px 16px 0 16px;
  padding-bottom: 8rem;
}
@media screen and (max-width: 599px) {
  .post-content_wrap .section_inner {
    flex-direction: column;
    gap: 4rem;
    padding-top: 4.1666666667vw;
    padding-bottom: 5rem;
  }
}
.post-content_wrap .main-content {
  flex: 1;
  min-width: 0;
}
.post-content_wrap .main-content .archive-ttl {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 2.4rem;
  margin-bottom: 4rem;
}
.post-content_wrap .main-content .archive-ttl::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 4px;
  height: 28px;
  background-color: var(--color-main);
  border-radius: 4px;
}
@media screen and (max-width: 599px) {
  .post-content_wrap .main-content .archive-ttl {
    font-size: 2rem;
  }
}
.post-content_wrap .main-content .archive-wrap {
  margin-top: 4rem;
}
.post-content_wrap .main-content .archive-wrap .article-item {
  border-bottom: 1px solid var(--color-gray);
  padding-bottom: 2.4rem;
  margin-bottom: 2.4rem;
}
@media screen and (max-width: 1024px) {
  .post-content_wrap .main-content .archive-wrap .article-item {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
  }
}
.post-content_wrap .main-content .archive-wrap .article-item a {
  display: flex;
  gap: 2.4rem;
  align-items: center;
  transition: opacity 0.3s;
}
.post-content_wrap .main-content .archive-wrap .article-item a:hover {
  opacity: 0.7;
}
@media screen and (max-width: 1024px) {
  .post-content_wrap .main-content .archive-wrap .article-item a {
    gap: 1rem;
    align-items: flex-start;
  }
}
.post-content_wrap .main-content .archive-wrap .article-item a .img-box {
  width: 30rem;
  height: 20rem;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 8px;
  background-color: var(--color-bg);
}
@media screen and (max-width: 1024px) {
  .post-content_wrap .main-content .archive-wrap .article-item a .img-box {
    width: 40%;
    height: auto;
    aspect-ratio: 4/3;
  }
}
.post-content_wrap .main-content .archive-wrap .article-item a .img-box img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.post-content_wrap .main-content .archive-wrap .article-item a .txt-box {
  flex: 1;
  min-width: 0;
}
.post-content_wrap .main-content .archive-wrap .article-item a .txt-box .tag {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 0.8rem;
}
.post-content_wrap .main-content .archive-wrap .article-item a .txt-box .tag .date {
  display: inline-block;
  color: var(--color-text-sub);
  font-size: 1.3rem;
  font-weight: 500;
  font-size: 1.3rem;
}
@media screen and (max-width: 599px) {
  .post-content_wrap .main-content .archive-wrap .article-item a .txt-box .tag .date {
    font-size: 1.2rem;
  }
}
.post-content_wrap .main-content .archive-wrap .article-item a .txt-box .tag .cate {
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--color-bg-sub);
  background-color: var(--color-main);
  border-radius: 999px;
  font-size: 1.2rem;
  padding: 0.3rem 1.5rem;
}
@media screen and (max-width: 599px) {
  .post-content_wrap .main-content .archive-wrap .article-item a .txt-box .tag .cate {
    font-size: 1.1rem;
  }
}
.post-content_wrap .main-content .archive-wrap .article-item a .txt-box .ttl {
  font-weight: 700;
  font-size: 1.6rem;
  color: var(--color-text-sub);
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.post-content_wrap .main-content .archive-wrap .article-item a .txt-box .txt {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  color: var(--color-text);
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.post-content_wrap .main-content .pagination {
  margin: 7rem auto 0;
}
@media screen and (max-width: 599px) {
  .post-content_wrap .main-content .pagination {
    margin: 4rem auto 0;
  }
}
.post-content_wrap .main-content .pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.post-content_wrap .main-content .pagination .nav-links .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 4.5rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: var(--color-bg-blue);
  color: var(--color-main);
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 599px) {
  .post-content_wrap .main-content .pagination .nav-links .page-numbers {
    width: 3.5rem;
  }
}
.post-content_wrap .main-content .pagination .nav-links a.page-numbers:not(.next):not(.prev):not(.back-link) {
  transition: background-color 0.3s, color 0.3s;
}
.post-content_wrap .main-content .pagination .nav-links a.page-numbers:not(.next):not(.prev):not(.back-link):hover {
  background-color: var(--color-main);
  color: var(--color-bg-sub);
}
.post-content_wrap .main-content .pagination .nav-links .current {
  background-color: var(--color-main);
  color: var(--color-bg-sub);
}
.post-content_wrap .main-content .pagination .nav-links .next,
.post-content_wrap .main-content .pagination .nav-links .prev {
  width: 4.5rem;
  aspect-ratio: unset;
  background-color: transparent;
  border-radius: 0;
  transition: opacity 0.3s;
}
.post-content_wrap .main-content .pagination .nav-links .next:hover,
.post-content_wrap .main-content .pagination .nav-links .prev:hover {
  background-color: none;
  color: inherit;
  opacity: 0.6;
}
.post-content_wrap .main-content .pagination .nav-links .back-link {
  width: 260px;
  aspect-ratio: unset;
  border-radius: 50px;
  padding: 1rem 0rem;
  background-color: var(--color-main);
  color: var(--color-bg-sub);
  transition: opacity 0.3s;
}
.post-content_wrap aside {
  align-self: stretch;
  width: 100%;
  max-width: 26.5rem;
  flex-shrink: 0;
}
@media screen and (max-width: 599px) {
  .post-content_wrap aside {
    max-width: 100%;
  }
}
.post-content_wrap aside .side-wrap {
  position: sticky;
  top: 0;
  padding-top: 14rem;
  margin-top: -14rem;
}
@media screen and (max-width: 599px) {
  .post-content_wrap aside .side-wrap {
    padding-top: 0;
    margin-top: 0;
  }
}
.post-content_wrap .category,
.post-content_wrap .popular,
.post-content_wrap .month {
  margin-bottom: 4rem;
}
.post-content_wrap .category .ttl,
.post-content_wrap .popular .ttl,
.post-content_wrap .month .ttl {
  position: relative;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}
.post-content_wrap .category .ttl::before,
.post-content_wrap .popular .ttl::before,
.post-content_wrap .month .ttl::before {
  position: absolute;
  top: 120%;
  left: 0;
  content: "";
  width: 100%;
  height: 4px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Ccircle cx='2' cy='2' r='2' fill='%234BB8D4'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
}
.post-content_wrap .category ul li {
  border-bottom: 1px solid #e0ddd9;
}
.post-content_wrap .category ul li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.2rem 2rem;
  font-size: 1.5rem;
  transition: opacity 0.3s;
}
.post-content_wrap .category ul li a:hover {
  opacity: 0.7;
}
.post-content_wrap .category ul li a::after {
  content: "";
  width: 1.2rem;
  height: 1.1rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='11' viewBox='0 0 12 11' fill='none'%3E%3Cpath d='M0.599934 5.26628L11.2666 5.26628M6.59993 9.93294L11.2666 5.26628L6.59993 0.599609' stroke='%23323232' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  flex-shrink: 0;
}
.post-content_wrap .month .side-month_wrap {
  position: relative;
  margin-top: 2.5rem;
}
.post-content_wrap .month .side-month_wrap::before {
  position: absolute;
  top: 50%;
  transform: translateY(-70%) rotate(135deg);
  right: 1.2rem;
  content: "";
  width: 0.7rem;
  height: 0.7rem;
  border-top: 2px solid var(--color-main);
  border-right: 2px solid var(--color-main);
  pointer-events: none;
  transition: transform 0.2s;
}
.post-content_wrap .month .side-month_wrap.is-open::before {
  transform: translateY(-30%) rotate(-45deg);
}
.post-content_wrap .month .select_btn {
  display: block;
  width: 100%;
  padding: 1.2rem 3.5rem 1.2rem 1.5rem;
  border: 1px solid #e0ddd9;
  border-radius: 3px;
  font-size: 1.4rem;
  font-family: inherit;
  color: inherit;
  text-align: left;
  background-color: var(--color-bg-sub);
  cursor: pointer;
}
.post-content_wrap .month .select_list {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 10;
  width: 100%;
  margin-top: 0.5rem;
  background-color: #fff;
  border: 1px solid #e0ddd9;
  border-radius: 3px;
  max-height: 24rem;
  overflow-y: auto;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.post-content_wrap .month .select_list li {
  list-style: none;
}
.post-content_wrap .month .select_list li + li {
  border-top: 1px solid #e0ddd9;
}
.post-content_wrap .month .select_list li a {
  display: block;
  padding: 1rem 1.5rem;
  font-size: 1.4rem;
  color: #323232;
  transition: opacity 0.3s;
}
.post-content_wrap .month .select_list li a:hover {
  opacity: 0.7;
}
.post-content_wrap .month .side-month_wrap.is-open .select_list {
  display: block;
}
.post-content_wrap .popular .popular-item {
  border-bottom: 1px solid #e0ddd9;
}
.post-content_wrap .popular .popular-item a {
  display: flex;
  gap: 1rem;
  padding: 2rem 0;
  transition: opacity 0.3s;
}
.post-content_wrap .popular .popular-item a:hover {
  opacity: 0.7;
}
.post-content_wrap .popular .popular-item a .img-box {
  width: 10rem;
  aspect-ratio: 1/0.75;
  overflow: hidden;
  border-radius: 4px;
  background-color: var(--color-bg);
  flex-shrink: 0;
}
.post-content_wrap .popular .popular-item a .img-box img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.post-content_wrap .popular .popular-item a p {
  font-size: 1.4rem;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex-grow: 1;
}
.post-content_wrap .popular.u-sp {
  margin-top: 10rem;
}

/*************************************************
投稿詳細ページ
*************************************************/
/*------------------------------------------------
目次（Table of Contents Plus）
------------------------------------------------*/
#toc_container {
  padding: 40px !important;
  margin-bottom: 6rem !important;
  background: var(--color-bg-sub);
  border-radius: 12px;
}
@media screen and (max-width: 599px) {
  #toc_container {
    padding: 24px 16px !important;
    margin-bottom: 4rem !important;
  }
}
#toc_container p.toc_title {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-main);
  letter-spacing: 0.8px;
  margin-bottom: 2.4rem;
  text-align: left !important;
}
#toc_container ul.toc_list {
  list-style: none !important;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 0;
  margin: 0;
}
#toc_container ul.toc_list > li > a {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--color-text);
  letter-spacing: 0.75px;
  text-decoration: none;
}
#toc_container ul.toc_list > li > a::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  margin-top: 9px;
  background-color: var(--color-main);
  border-radius: 50%;
}
#toc_container ul.toc_list > li > ul {
  list-style: none !important;
  padding: 0;
  margin: 1rem 0 0 23px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
#toc_container ul.toc_list > li > ul li a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--color-text);
  letter-spacing: 0.75px;
  text-decoration: none;
}
#toc_container ul.toc_list > li > ul li a::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 8px;
  min-width: 8px;
  height: 1px;
  border-radius: 50px;
  background: var(--color-main);
}

.single .main-content p + p {
  margin-top: 1em;
}
.single .main-content .entry-content h2 {
  position: relative;
  font-size: 3.4rem;
  font-weight: 700;
  margin-bottom: 4rem;
  background-color: var(--color-bg-blue);
  border-radius: 10px;
  letter-spacing: 3.8px;
  padding: 0.5rem 2rem;
}
@media screen and (max-width: 599px) {
  .single .main-content .entry-content h2 {
    font-size: 2.4rem;
    margin-bottom: 2.4rem;
    line-height: 140%; /* 39.2px */
    padding: 1.5rem 2rem;
  }
}
.single .main-content .entry-content img {
  border-radius: 12px;
}
.single .main-content p + h2 {
  margin-top: 4rem;
}
@media screen and (max-width: 599px) {
  .single .main-content p + h2 {
    margin-top: 2.4rem;
  }
}
.single .main-content h3 {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 1.4px;
  margin-top: 4rem;
  margin-bottom: 3rem;
}
.single .main-content h3::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 4px;
  height: 1em;
  background-color: var(--color-main);
  border-radius: 5px;
}
@media screen and (max-width: 599px) {
  .single .main-content h3 {
    font-size: 2.2rem;
    margin-top: 2.4rem;
    margin-bottom: 2rem;
  }
}
.single .main-content h4 {
  position: relative;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 1.1px;
  padding-left: 1rem;
  border-bottom: 1px solid var(--color-gray);
  margin-top: 3rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 599px) {
  .single .main-content h4 {
    font-size: 1.6rem;
    margin-top: 2rem;
    margin-bottom: 1.8rem;
  }
}
.single .main-content p, .single .main-content table {
  margin-bottom: 4rem;
}