@charset "UTF-8";
html {
  font-size: 62.5%;
}

body,
input,
textarea {
  margin: 0;
  position: relative;
  color: #fff;
  background-color: #fff;
  font-size: 1.4rem;
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  font-weight: 400;
}

/* 明朝 */
.mincho {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

/* 欧文 */
.en {
  font-family: "Jost", sans-serif;
  font-weight: 400;
}

h1,
h2,
h3,
h4 {
  font-size: 2.8rem;
  color: #333;
  line-height: 1.6;
}

p {
  font-size: 1.4rem;
  color: #333;
  line-height: 1.6;
}

em {
  font-style: normal;
}

a {
  font-size: 1.4rem;
  text-decoration: none;
  color: #333;
  display: inline-block;
}

a:hover {
  text-decoration: none;
  opacity: 0.6;
}

p a {
  text-decoration: underline;
}
p a:hover {
  color: red;
}

hr {
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-top: dotted 1px #ccc;
}

li {
  font-size: 1.6rem;
  list-style: none;
  line-height: 1.6;
}

dl {
  font-size: 1.6rem;
}

dd,
dt,
dl {
  display: block;
}

table {
  border-collapse: collapse;
  font-size: 1.6rem;
}
table caption {
  text-align: left;
}
table th {
  padding: 15px 0;
}
table td {
  padding: 15px 30px;
}

img {
  vertical-align: middle;
}

.fv-blurIn {
  opacity: 0;
  filter: blur(8px);
  transform: scale(1.03);
  animation: blurIn 1.2s ease-out forwards;
}

@keyframes blurIn {
  to {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
  }
}
/* 動きが苦手な人への配慮 */
@media (prefers-reduced-motion: reduce) {
  .fv-blurIn {
    animation: none;
    opacity: 1;
    filter: none;
    transform: none;
  }
}
/* =========================
   pc / tablet / sp 表示切替
========================= */
/* PCのみ表示（1025px〜） */
@media (min-width: 1025px) {
  .tb,
  .sp {
    display: none !important;
  }
}
/* Tabletのみ表示（769px〜1024px） */
@media (min-width: 769px) and (max-width: 1024px) {
  .pc,
  .sp {
    display: none !important;
  }
}
/* SPのみ表示（〜768px） */
@media (max-width: 768px) {
  .pc,
  .tb {
    display: none !important;
  }
}
/* =========================
   スマホだけ改行
========================= */
.sp-br {
  display: none;
}

@media screen and (max-width: 768px) {
  .sp-br {
    display: block;
  }
}
/* =========================
   PCだけ改行
========================= */
.pc-br {
  display: none;
}

@media screen and (min-width: 769px) {
  .pc-br {
    display: block;
  }
}
/* =========================
   util
========================= */
.u-marker {
  background: linear-gradient(transparent 0%, transparent 60%, #ffed83 61%, #ffed83 100%);
}

.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ta-c {
  text-align: center !important;
}

.fw-b {
  font-weight: bold !important;
}

.fw-n {
  font-weight: normal !important;
}

.ofh {
  overflow: hidden;
}

.w-100 {
  width: 100%;
  display: block;
  margin: 0 auto;
}
.w-100 img {
  width: 100%;
  display: block;
  margin: 0 auto;
}

.w-80 {
  width: 80%;
  display: block;
  margin: 0 auto;
}
.w-80 img {
  width: 80%;
  display: block;
  margin: 0 auto;
}

.br-40 {
  border-radius: 40px;
}

.container-l {
  display: block;
  width: min(85%, 1200px);
  margin: 0 auto;
  padding: 120px 0;
}
@media (max-width: 767px) {
  .container-l {
    padding: 60px 0;
  }
}

.container-ls {
  display: block;
  width: min(85%, 1200px);
  margin: 0 auto;
  padding: 50px 0 60px;
}
@media (max-width: 767px) {
  .container-ls {
    padding: 60px 0;
  }
}

.container-m {
  display: block;
  width: min(85%, 1060px);
  margin: 0 auto;
  padding: 100px 0;
}
@media (max-width: 767px) {
  .container-m {
    padding: 50px 0;
  }
}

.container-s {
  display: block;
  width: min(85%, 900px);
  margin: 0 auto;
  padding: 100px 0;
}
@media (max-width: 767px) {
  .container-s {
    padding: 50px 0;
  }
}

.container-ss {
  display: block;
  width: min(85%, 900px);
  margin: 0 auto;
  padding: 50px 0 60px;
}
@media (max-width: 767px) {
  .container-ss {
    padding: 50px 0;
  }
}

.container-0 {
  display: block;
  width: min(85%, 900px);
  margin: 0 auto;
}

.mt-0 {
  margin-top: 0;
}

.mb-0 {
  margin-bottom: 0;
}

.pt-0 {
  padding-top: 0;
}

.pb-0 {
  padding-bottom: 0;
}

.bg-white {
  background-color: #fff !important;
}

.bg-l-gray {
  background-color: #f9f9f9 !important;
}

.bg-l-blue {
  background-color: #f2f5f6 !important;
}

.bg-l-beige {
  background-color: #f5f4f1 !important;
}

.bg-l-green {
  background-color: #eef2ed !important;
}

.marker {
  font-weight: 700;
  background: #fff3a8;
}

.p-0 {
  padding: 0 !important;
}

.p-10 {
  padding: 10px !important;
}

.p-20 {
  padding: 20px !important;
}

.p-30 {
  padding: 30px !important;
}

.p-40 {
  padding: 40px !important;
}

.p-50 {
  padding: 50px !important;
}

.p-60 {
  padding: 60px !important;
}

.p-70 {
  padding: 70px !important;
}

.p-80 {
  padding: 80px !important;
}

.p-90 {
  padding: 90px !important;
}

.p-100 {
  padding: 100px !important;
}

@media (max-width: 767px) {
  .p-0 {
    padding: 0 !important;
  }
  .p-10 {
    padding: 5px !important;
  }
  .p-20 {
    padding: 10px !important;
  }
  .p-30 {
    padding: 15px !important;
  }
  .p-40 {
    padding: 20px !important;
  }
  .p-50 {
    padding: 25px !important;
  }
  .p-60 {
    padding: 30px !important;
  }
  .p-70 {
    padding: 35px !important;
  }
  .p-80 {
    padding: 40px !important;
  }
  .p-90 {
    padding: 45px !important;
  }
  .p-100 {
    padding: 50px !important;
  }
}
.mt-0 {
  margin-top: 0 !important;
}

.mt-10 {
  margin-top: 10px !important;
}

.mt-20 {
  margin-top: 20px !important;
}

.mt-30 {
  margin-top: 30px !important;
}

.mt-40 {
  margin-top: 40px !important;
}

.mt-50 {
  margin-top: 50px !important;
}

.mt-60 {
  margin-top: 60px !important;
}

.mt-70 {
  margin-top: 70px !important;
}

.mt-80 {
  margin-top: 80px !important;
}

.mt-90 {
  margin-top: 90px !important;
}

.mt-100 {
  margin-top: 100px !important;
}

.mt-110 {
  margin-top: 110px !important;
}

.mt-120 {
  margin-top: 120px !important;
}

.mt-130 {
  margin-top: 130px !important;
}

.mt-140 {
  margin-top: 140px !important;
}

.mt-150 {
  margin-top: 150px !important;
}

.mt-160 {
  margin-top: 160px !important;
}

.mt-170 {
  margin-top: 170px !important;
}

.mt-180 {
  margin-top: 180px !important;
}

.mt-190 {
  margin-top: 190px !important;
}

.mt-200 {
  margin-top: 200px !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-10 {
  margin-bottom: 10px !important;
}

.mb-20 {
  margin-bottom: 20px !important;
}

.mb-30 {
  margin-bottom: 30px !important;
}

.mb-40 {
  margin-bottom: 40px !important;
}

.mb-50 {
  margin-bottom: 50px !important;
}

.mb-60 {
  margin-bottom: 60px !important;
}

.mb-70 {
  margin-bottom: 70px !important;
}

.mb-80 {
  margin-bottom: 80px !important;
}

.mb-90 {
  margin-bottom: 90px !important;
}

.mb-100 {
  margin-bottom: 100px !important;
}

.mb-110 {
  margin-bottom: 110px !important;
}

.mb-120 {
  margin-bottom: 120px !important;
}

.mb-130 {
  margin-bottom: 130px !important;
}

.mb-140 {
  margin-bottom: 140px !important;
}

.mb-150 {
  margin-bottom: 150px !important;
}

.mb-160 {
  margin-bottom: 160px !important;
}

.mb-170 {
  margin-bottom: 170px !important;
}

.mb-180 {
  margin-bottom: 180px !important;
}

.mb-190 {
  margin-bottom: 190px !important;
}

.mb-200 {
  margin-bottom: 200px !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pt-10 {
  padding-top: 10px !important;
}

.pt-20 {
  padding-top: 20px !important;
}

.pt-30 {
  padding-top: 30px !important;
}

.pt-40 {
  padding-top: 40px !important;
}

.pt-50 {
  padding-top: 50px !important;
}

.pt-60 {
  padding-top: 60px !important;
}

.pt-70 {
  padding-top: 70px !important;
}

.pt-80 {
  padding-top: 80px !important;
}

.pt-90 {
  padding-top: 90px !important;
}

.pt-100 {
  padding-top: 100px !important;
}

.pt-110 {
  padding-top: 110px !important;
}

.pt-120 {
  padding-top: 120px !important;
}

.pt-130 {
  padding-top: 130px !important;
}

.pt-140 {
  padding-top: 140px !important;
}

.pt-150 {
  padding-top: 150px !important;
}

.pt-160 {
  padding-top: 160px !important;
}

.pt-170 {
  padding-top: 170px !important;
}

.pt-180 {
  padding-top: 180px !important;
}

.pt-190 {
  padding-top: 190px !important;
}

.pt-200 {
  padding-top: 200px !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pb-10 {
  padding-bottom: 10px !important;
}

.pb-20 {
  padding-bottom: 20px !important;
}

.pb-30 {
  padding-bottom: 30px !important;
}

.pb-40 {
  padding-bottom: 40px !important;
}

.pb-50 {
  padding-bottom: 50px !important;
}

.pb-60 {
  padding-bottom: 60px !important;
}

.pb-70 {
  padding-bottom: 70px !important;
}

.pb-80 {
  padding-bottom: 80px !important;
}

.pb-90 {
  padding-bottom: 90px !important;
}

.pb-100 {
  padding-bottom: 100px !important;
}

.pb-110 {
  padding-bottom: 110px !important;
}

.pb-120 {
  padding-bottom: 120px !important;
}

.pb-130 {
  padding-bottom: 130px !important;
}

.pb-140 {
  padding-bottom: 140px !important;
}

.pb-150 {
  padding-bottom: 150px !important;
}

.pb-160 {
  padding-bottom: 160px !important;
}

.pb-170 {
  padding-bottom: 170px !important;
}

.pb-180 {
  padding-bottom: 180px !important;
}

.pb-190 {
  padding-bottom: 190px !important;
}

.pb-200 {
  padding-bottom: 200px !important;
}

@media (max-width: 767px) {
  .mt-0 {
    margin-top: 0 !important;
  }
  .mt-10 {
    margin-top: 5px !important;
  }
  .mt-20 {
    margin-top: 10px !important;
  }
  .mt-30 {
    margin-top: 15px !important;
  }
  .mt-40 {
    margin-top: 20px !important;
  }
  .mt-50 {
    margin-top: 25px !important;
  }
  .mt-60 {
    margin-top: 30px !important;
  }
  .mt-70 {
    margin-top: 35px !important;
  }
  .mt-80 {
    margin-top: 40px !important;
  }
  .mt-90 {
    margin-top: 45px !important;
  }
  .mt-100 {
    margin-top: 50px !important;
  }
  .mt-110 {
    margin-top: 55px !important;
  }
  .mt-120 {
    margin-top: 60px !important;
  }
  .mt-130 {
    margin-top: 65px !important;
  }
  .mt-140 {
    margin-top: 70px !important;
  }
  .mt-150 {
    margin-top: 75px !important;
  }
  .mt-160 {
    margin-top: 80px !important;
  }
  .mt-170 {
    margin-top: 85px !important;
  }
  .mt-180 {
    margin-top: 90px !important;
  }
  .mt-190 {
    margin-top: 95px !important;
  }
  .mt-200 {
    margin-top: 100px !important;
  }
  .mb-0 {
    margin-bottom: 0 !important;
  }
  .mb-10 {
    margin-bottom: 5px !important;
  }
  .mb-20 {
    margin-bottom: 10px !important;
  }
  .mb-30 {
    margin-bottom: 15px !important;
  }
  .mb-40 {
    margin-bottom: 20px !important;
  }
  .mb-50 {
    margin-bottom: 25px !important;
  }
  .mb-60 {
    margin-bottom: 30px !important;
  }
  .mb-70 {
    margin-bottom: 35px !important;
  }
  .mb-80 {
    margin-bottom: 40px !important;
  }
  .mb-90 {
    margin-bottom: 45px !important;
  }
  .mb-100 {
    margin-bottom: 50px !important;
  }
  .mb-110 {
    margin-bottom: 55px !important;
  }
  .mb-120 {
    margin-bottom: 60px !important;
  }
  .mb-130 {
    margin-bottom: 65px !important;
  }
  .mb-140 {
    margin-bottom: 70px !important;
  }
  .mb-150 {
    margin-bottom: 75px !important;
  }
  .mb-160 {
    margin-bottom: 80px !important;
  }
  .mb-170 {
    margin-bottom: 85px !important;
  }
  .mb-180 {
    margin-bottom: 90px !important;
  }
  .mb-190 {
    margin-bottom: 95px !important;
  }
  .mb-200 {
    margin-bottom: 100px !important;
  }
  .pt-0 {
    padding-top: 0 !important;
  }
  .pt-10 {
    padding-top: 5px !important;
  }
  .pt-20 {
    padding-top: 10px !important;
  }
  .pt-30 {
    padding-top: 15px !important;
  }
  .pt-40 {
    padding-top: 20px !important;
  }
  .pt-50 {
    padding-top: 25px !important;
  }
  .pt-60 {
    padding-top: 30px !important;
  }
  .pt-70 {
    padding-top: 35px !important;
  }
  .pt-80 {
    padding-top: 40px !important;
  }
  .pt-90 {
    padding-top: 45px !important;
  }
  .pt-100 {
    padding-top: 50px !important;
  }
  .pt-110 {
    padding-top: 55px !important;
  }
  .pt-120 {
    padding-top: 60px !important;
  }
  .pt-130 {
    padding-top: 65px !important;
  }
  .pt-140 {
    padding-top: 70px !important;
  }
  .pt-150 {
    padding-top: 75px !important;
  }
  .pt-160 {
    padding-top: 80px !important;
  }
  .pt-170 {
    padding-top: 85px !important;
  }
  .pt-180 {
    padding-top: 90px !important;
  }
  .pt-190 {
    padding-top: 95px !important;
  }
  .pt-200 {
    padding-top: 100px !important;
  }
  .pb-0 {
    padding-bottom: 0 !important;
  }
  .pb-10 {
    padding-bottom: 5px !important;
  }
  .pb-20 {
    padding-bottom: 10px !important;
  }
  .pb-30 {
    padding-bottom: 15px !important;
  }
  .pb-40 {
    padding-bottom: 20px !important;
  }
  .pb-50 {
    padding-bottom: 25px !important;
  }
  .pb-60 {
    padding-bottom: 30px !important;
  }
  .pb-70 {
    padding-bottom: 35px !important;
  }
  .pb-80 {
    padding-bottom: 40px !important;
  }
  .pb-90 {
    padding-bottom: 45px !important;
  }
  .pb-100 {
    padding-bottom: 50px !important;
  }
  .pb-110 {
    padding-bottom: 55px !important;
  }
  .pb-120 {
    padding-bottom: 60px !important;
  }
  .pb-130 {
    padding-bottom: 65px !important;
  }
  .pb-140 {
    padding-bottom: 70px !important;
  }
  .pb-150 {
    padding-bottom: 75px !important;
  }
  .pb-160 {
    padding-bottom: 80px !important;
  }
  .pb-170 {
    padding-bottom: 85px !important;
  }
  .pb-180 {
    padding-bottom: 90px !important;
  }
  .pb-190 {
    padding-bottom: 95px !important;
  }
  .pb-200 {
    padding-bottom: 100px !important;
  }
}
/* 初期状態（見えない＋少し下へ） */
.js-reveal {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 900ms ease, transform 900ms ease;
  will-change: opacity, transform;
}

/* 表示状態 */
.js-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 連続表示用の遅延（JSで --delay を入れる） */
.js-reveal {
  transition-delay: var(--delay, 0ms);
}

/* 動きが苦手な人への配慮 */
@media (prefers-reduced-motion: reduce) {
  .js-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.notice {
  padding: 80px 0 0;
}

.notice__inner {
  max-width: 1060px;
  width: 100%;
  margin: 0 auto;
}

.notice__inner-wide {
  max-width: 1060px;
  width: 100%;
  margin: 0 auto;
}

.noticeBox {
  position: relative;
  padding: 44px 60px;
  border: 1px solid #d8caca;
  background: #f5f4f1;
  text-align: center;
}

.noticeBox + .noticeBox {
  margin-top: 40px;
}

.noticeBox__illust {
  position: absolute;
  width: 200px;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
}
.noticeBox__illust img {
  width: 100%;
}

.noticeBox__title {
  margin: 0 0 20px;
  color: #513b3b;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.noticeBox__text {
  margin: 0 0 30px;
  color: #333;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: justify;
}

.noticeBox__lead {
  margin: 0;
  color: #b18b8b;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-bottom: 20px;
}

.noticeBox__note {
  margin: 22px 0 0;
  color: #aaa;
  font-size: 14px;
}

@media (max-width: 767px) {
  .notice {
    margin: 0 20px;
  }
  .notice {
    padding: 40px 0 20px;
  }
  .noticeBox {
    padding: 35px 25px 20px;
  }
  .noticeBox__illust {
    position: absolute;
    width: 140px;
    top: -70px;
    left: 50%;
    transform: translateX(-50%);
  }
  .noticeBox__illust img {
    width: 100%;
  }
  .noticeBox__title {
    font-size: 20px;
    margin-bottom: 20px;
  }
  .noticeBox__text {
    font-size: 14px;
  }
  .noticeBox__lead {
    font-size: 16px;
    margin-bottom: 10px;
  }
  .noticeBox__note {
    font-size: 12px;
  }
}
.imgList2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 60px;
  max-width: 800px;
  margin: 0 auto 40px;
}

.imgList2col__item {
  width: 100%;
}

.imgList2col__item {
  text-align: center;
  display: flex;
  flex-direction: column;
}

.imgList2col__img {
  margin-bottom: 20px;
}

.imgList2col__img img {
  display: block;
  width: 100%;
}

.imgList2col__item .imgList2col__title-l {
  margin: 0 0 15px;
  color: #8a6b6b;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  flex-grow: 1;
}

.imgList2col__item .imgList2col__title-m {
  margin: 0;
  color: #8a6b6b;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
  flex-grow: 1;
  margin-bottom: 20px;
}

.imgList2col__item p {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: justify;
  flex-grow: 1;
}

@media (max-width: 767px) {
  .imgList2col {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
  }
  .imgList2col__img {
    margin-bottom: 15px;
  }
  .imgList2col__title {
    margin-bottom: 10px;
    font-size: 16px;
  }
  .imgList2col__item p {
    font-size: 13px;
    line-height: 1.7;
    letter-spacing: 0.01em;
  }
  .imgList2col__item .imgList2col__title-l {
    margin: 0 0 15px;
    font-size: 15px;
    letter-spacing: 0em;
  }
  .imgList2col__item .imgList2col__title-m {
    margin: 0 0 10px;
    font-size: 14px;
    letter-spacing: 0em;
  }
}
.imgList01 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto 40px;
}

.imgList01--2col {
  grid-template-columns: repeat(2, 40%);
  justify-content: center;
}

.imgList01--3col {
  grid-template-columns: repeat(3, 30%);
  justify-content: center;
  gap: 80px;
}

.imgList01--3col .imgList01__img img {
  border-radius: 40px;
}

.imgList01--4col {
  grid-template-columns: repeat(4, 25%);
  justify-content: center;
}

@media (max-width: 767px) {
  .imgList01,
  .imgList01--2col,
  .imgList01--3col,
  .imgList01--4col {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 14px;
  }
}
.imgList01__item {
  width: 100%;
}

.imgList01__item {
  text-align: center;
  display: flex;
  flex-direction: column;
}

.imgList01__img {
  margin-bottom: 20px;
}

.imgList01__img img {
  display: block;
  width: 100%;
  border-radius: 40px;
}

.imgList01__item .imgList01__title-l {
  margin: 0 0 15px;
  color: #8a6b6b;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  flex-grow: 1;
}

.imgList01__item .imgList01__title-m {
  margin: 0;
  color: #8a6b6b;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
  flex-grow: 1;
  margin-bottom: 20px;
}

.imgList01__item .imgList01__title-s {
  margin: 0;
  color: #8a6b6b;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
  flex-grow: 1;
  margin-bottom: 20px;
}

.imgList01__item p {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: justify;
  flex-grow: 1;
}

@media (max-width: 767px) {
  .imgList01 {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .imgList01__img {
    margin-bottom: 20px;
  }
  .imgList01__title {
    margin-bottom: 10px;
    font-size: 16px;
  }
  .imgList01__item p {
    font-size: 13px;
    line-height: 1.8;
    letter-spacing: 0.01em;
  }
  .imgList01__item .imgList01__title-m {
    margin: 0 0 10px;
    font-size: 14px;
    letter-spacing: 0em;
  }
  .imgList01__item .imgList01__title-l {
    font-size: 18px;
  }
}
.c-list01 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  margin-bottom: 60px;
}

.c-list01__img {
  margin-bottom: 28px;
}

.c-list01__img img {
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  border-radius: 24px;
}

.c-list01__title {
  margin: 0 0 14px;
  color: #8a7272;
  font-family: "Noto Serif JP", serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.15em;
}

.c-list01__txt {
  margin: 0;
  color: #3e3e3e;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  padding: 0 20px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
}

.c-list01__txt strong {
  font-weight: 700;
  background: #fff3a8;
}

/* sp */
@media (max-width: 767px) {
  .c-list01 {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-bottom: 40px;
  }
  .c-list01__title {
    font-size: 24px;
    margin-bottom: 6px;
  }
  .c-list01__img {
    margin-bottom: 20px;
  }
  .c-list01__img img {
    width: 80%;
    aspect-ratio: 16/10;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center center;
       object-position: center center;
    border-radius: 24px;
  }
  .c-list01__txt {
    font-size: 13px;
    padding: 0 10px;
  }
}
.dotList {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.dotList__item {
  padding: 50px 60px;
  border-radius: 24px;
  background: #fff;
}

.dotList__title {
  position: relative;
  margin: 0 0 36px;
  padding-left: 26px;
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.dotList__title::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #b89999;
}

.dotList__box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 34px 0;
  border-top: 1px dashed #d9d9d9;
}

.dotList__box:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.dotList__content {
  flex: 1;
}

.dotList__head {
  margin: 0 0 18px;
  color: #b89999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.dotList__txt {
  margin: 0;
  color: #333;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.dotList__img {
  width: 240px;
  flex-shrink: 0;
}

.dotList__img img {
  display: block;
  width: 100%;
}

@media (max-width: 767px) {
  .dotList {
    gap: 16px;
  }
  .dotList__item {
    padding: 30px 20px;
    padding-bottom: 10px;
    border-radius: 16px;
  }
  .dotList__title {
    margin-bottom: 24px;
    padding-left: 18px;
    font-size: 22px;
  }
  .dotList__title::before {
    top: 12px;
    width: 8px;
    height: 8px;
  }
  .dotList__box {
    display: block;
    padding: 24px 0;
  }
  .dotList__head {
    margin-bottom: 12px;
    font-size: 18px;
  }
  .dotList__txt {
    font-size: 14px;
    line-height: 2;
  }
  .dotList__img {
    width: 70%;
    margin: 0 auto;
    margin-top: 20px;
  }
}
.numList {
  border-top: 1px dashed #d9d9d9;
  padding: 0 50px;
}

.numList__item {
  border-bottom: 1px dashed #d9d9d9;
}

.numList__inner {
  display: flex;
  align-items: center;
  gap: 80px;
  padding: 80px 0 60px;
}

.numList__inner--reverse {
  flex-direction: row-reverse;
}

.numList__img {
  width: 360px;
  flex-shrink: 0;
}

.numList__img img {
  display: block;
  width: 100%;
  border-radius: 30px;
}

.numList__content {
  position: relative;
  flex: 1;
}

.numList__num {
  position: absolute;
  top: -80px;
  left: -40px;
  width: 120px;
}

.numList__num img {
  display: block;
  width: 100%;
}

.numList__tag {
  padding: 6px 40px;
  font-size: 14px;
  margin-bottom: 10px;
  color: #fff;
  background: linear-gradient(90deg, #8ea3a3 0%, #abb7c9 100%);
  border-radius: 5px;
  display: table;
}

.numList__title {
  margin: 0 0 30px;
  color: #8ea3a3;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.numList__txt p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

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

@media (max-width: 767px) {
  .numList {
    padding: 0;
  }
  .numList__item {
    padding: 0;
  }
  .numList__inner {
    padding: 60px 0 30px;
  }
  .numList__inner,
  .numList__inner--reverse {
    display: block;
  }
  .numList__img {
    width: 80%;
    margin: 0 auto;
    margin-bottom: 30px;
  }
  .numList__img img {
    border-radius: 20px;
  }
  .numList__num {
    top: -70px;
    left: auto;
    right: 0;
    width: 70px;
  }
  .numList__title {
    margin-bottom: 20px;
    font-size: 26px;
    line-height: 1.5;
  }
  .numList__txt p {
    font-size: 15px;
    line-height: 2;
  }
  .numList__txt p + p {
    margin-top: 14px;
  }
}
.numList__item {
  position: relative;
}

/* =================================
num
================================= */
.numList__img {
  position: relative;
}

.numList__img::after {
  content: "";
  position: absolute;
  top: -40px;
  left: -40px;
  width: 120px;
  aspect-ratio: 1/1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.numList__item:nth-child(1) .numList__img::after {
  width: 100px;
  background-image: url("./img/common/num01.svg");
}

.numList__item:nth-child(2) .numList__img::after {
  background-image: url("./img/common/num02.svg");
}

.numList__item:nth-child(3) .numList__img::after {
  background-image: url("./img/common/num03.svg");
}

.numList__item:nth-child(4) .numList__img::after {
  background-image: url("./img/common/num04.svg");
}

.numList__item:nth-child(5) .numList__img::after {
  background-image: url("./img/common/num05.svg");
}

.numList__item:nth-child(6) .numList__img::after {
  background-image: url("./img/common/num06.svg");
}

.numList__item:nth-child(even) .numList__img::after {
  right: -40px;
  left: auto;
}

@media (max-width: 767px) {
  .numList__img::after {
    top: -40px;
    width: 80px;
  }
  .numList__item:nth-child(1) .numList__img::after {
    width: 100px;
    background-image: url("./img/common/num01.svg");
    width: 60px;
  }
  .numList__item:nth-child(2) .numList__img::after {
    background-image: url("./img/common/num02.svg");
  }
  .numList__item:nth-child(3) .numList__img::after {
    background-image: url("./img/common/num03.svg");
  }
  .numList__item:nth-child(4) .numList__img::after {
    background-image: url("./img/common/num04.svg");
  }
  .numList__item:nth-child(5) .numList__img::after {
    background-image: url("./img/common/num05.svg");
  }
  .numList__item:nth-child(6) .numList__img::after {
    background-image: url("./img/common/num06.svg");
  }
}
.c-btn01 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 480px;
  height: 74px;
  margin: 0 auto;
  padding: 0 18px 0 42px;
  border: 1px solid #866f6f;
  border-radius: 20px;
  background: #fff;
  text-decoration: none;
  transition: 0.3s;
}

.c-btn01-sub {
  display: block;
  font-size: 1.6rem;
  margin-top: 80px;
  margin-bottom: 10px;
  color: #816867;
  letter-spacing: 0.1rem;
}

.c-btn01:hover {
  opacity: 0.75;
  text-decoration: none;
  background: rgba(0, 0, 0, 0);
}

.c-btn01 span {
  color: #4c3a3a;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.06em;
}

.c-btn01__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}

.c-btn01__icon img {
  display: block;
  width: 100%;
  height: 100%;
}

/* sp */
@media (max-width: 767px) {
  .c-btn01 {
    width: 100%;
    max-width: 340px;
    height: 62px;
    padding: 0 14px 0 20px;
  }
  .c-btn01 span {
    font-size: 14px;
  }
  .c-btn01__icon {
    width: 30px;
    height: 30px;
  }
}
.flowList {
  margin-top: 40px;
  border-top: 1px solid #ddd;
}

.flowList__item {
  display: flex;
  justify-content: space-between;
  gap: 80px;
  padding: 40px 0;
  border-bottom: 1px solid #ddd;
}

.flowList__head {
  width: 240px;
}

.flowList__num {
  display: block;
  margin-bottom: 10px;
  color: #b89999;
  font-family: "Jost", sans-serif;
  font-size: 30px;
  line-height: 1;
}

.flowList__title {
  margin: 0;
  color: #4c3a3a;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.flowList__content {
  flex: 1;
}

.flowList__content p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: justify;
}

.flowList__content p + p {
  margin-top: 10px;
}

@media (max-width: 767px) {
  .flowList {
    margin-top: 20px;
  }
  .flowList__item {
    display: block;
    padding: 30px 20px;
  }
  .flowList__head {
    width: 100%;
    margin-bottom: 24px;
  }
  .flowList__num {
    margin-bottom: 12px;
    font-size: 28px;
  }
  .flowList__title {
    font-size: 22px;
  }
  .flowList__content p {
    font-size: 14px;
    line-height: 2;
    text-align: justify;
  }
  .flowList__content p + p {
    margin-top: 10px;
  }
}
.ankerList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.ankerList.col2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.ankerList__item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid #5a4642;
  border-radius: 13px;
  text-decoration: none;
  transition: 0.3s;
}

.ankerList__item span {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #5a4642;
  font-weight: bold;
}

.ankerList__item::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 24px;
  width: 12px;
  height: 12px;
  border-right: 2px solid #5a4642;
  border-bottom: 2px solid #5a4642;
  transform: translateY(-60%) rotate(45deg);
  transition: 0.3s;
}

.ankerList__item:hover {
  background: #f5f4f1;
  opacity: 1;
}

.ankerList__item.is-current {
  background: #90736d;
  border: 1px solid #90736d;
}
.ankerList__item.is-current span {
  color: #fff;
}

.ankerList__item.is-current::after {
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
}

.ankerList__item.is-current:hover {
  background: #90736d;
  opacity: 1;
}

.ankerList__item:hover::after {
  transform: translateY(-40%) rotate(45deg);
}

@media (max-width: 767px) {
  .ankerList {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .ankerList__item {
    min-height: 58px;
    padding: 16px 44px 16px 16px;
    border-radius: 10px;
  }
  .ankerList__item span {
    font-size: 16px;
  }
  .ankerList__item::after {
    right: 18px;
    width: 10px;
    height: 10px;
  }
}
/* =================================
title01
================================= */
.title01 {
  position: relative;
  text-align: center;
  margin-bottom: 30px;
}

.title01::after {
  content: "";
  display: block;
  width: 1px;
  height: 20px;
  margin: 18px auto 0;
  background: #d8d0cf;
}

.title01__en {
  margin: 0 0 10px;
  color: #ab8d8c;
  font-family: "jost", "Arial", sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

.title01__ja {
  margin: 0;
  color: #5a4141;
  font-family: "Noto Serif JP", serif;
  font-size: 3.8rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.2em;
}

@media screen and (max-width: 767px) {
  .title01 {
    margin-bottom: 20px;
  }
  .title01::after {
    height: 10px;
    margin-top: 10px;
  }
  .title01__en {
    margin-bottom: 6px;
    font-size: 1.3rem;
    letter-spacing: 0.2em;
  }
  .title01__ja {
    font-size: 2.5rem;
    letter-spacing: 0.1em;
  }
}
/* =================================
title02
================================= */
.title02 {
  text-align: center;
  margin-bottom: 30px;
}

.title02::after {
  content: "";
  display: block;
  width: 1px;
  height: 20px;
  margin: 18px auto 0;
  background: #d8d0cf;
}

.title02__en {
  margin: 0 0 18px;
  color: #ab8d8c;
  font-family: "Jost", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.24em;
}

.title02__main {
  margin: 0;
  color: #4c3a3a;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

@media (max-width: 767px) {
  .title02::after {
    height: 10px;
    margin-top: 10px;
  }
  .title02__en {
    margin-bottom: 12px;
    font-size: 13px;
  }
  .title02__main {
    font-size: 20px;
    line-height: 1.6;
  }
}
/* =================================
title03
================================= */
.title03 {
  text-align: center;
  margin-bottom: 40px;
  border-bottom: solid 1px #4c3a3a;
  padding-bottom: 20px;
  width: 80%;
  margin: 0 auto;
  color: #4c3a3a;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

@media (max-width: 767px) {
  .title03 {
    font-size: 20px;
    line-height: 1.6;
  }
}
/* =================================
CTA
================================= */
.illusthead {
  margin-bottom: 40px;
  text-align: center;
}

.illusthead__icon {
  width: 180px;
  margin: 0 auto 10px;
}
.illusthead__icon img {
  display: block;
  width: 100%;
}

.illusthead__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 50px;
  margin: 0;
  color: #7f6464;
  font-size: 34px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.illusthead__title span {
  width: 10px;
  height: 34px;
  border-left: solid 2px #7f6464;
  border-right: solid 2px #7f6464;
}

@media (max-width: 767px) {
  .illusthead__head {
    margin-bottom: 24px;
  }
  .illusthead__icon {
    width: 140px;
    margin-bottom: 10px;
  }
  .illusthead__title {
    gap: 30px;
    font-size: 20px;
    line-height: 1.4;
  }
  .illusthead__title span {
    width: 2px;
    height: 24px;
  }
  .illusthead__title span {
    width: 8px;
  }
}
.checkList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 40px;
  margin: 0;
  margin-bottom: 60px;
  padding: 0;
  list-style: none;
}

.checkList__item {
  position: relative;
  padding-left: 35px;
  color: #8ea3a3;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

.checkList__item::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 0;
  width: 22px;
  height: 22px;
  background: url("../img/common/icon-check.svg") center center/contain no-repeat;
}

@media (max-width: 767px) {
  .checkList {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .checkList__item {
    padding-left: 30px;
    font-size: 13px;
    line-height: 1.7;
  }
  .checkList__item::before {
    width: 18px;
    height: 18px;
    top: 2px;
  }
}
.lead-m {
  margin: 40px 0 60px;
  font-weight: 400;
  font-size: 16px;
  line-height: 2;
  text-align: center;
  letter-spacing: 0.05em;
  color: #333333;
}

@media (max-width: 767px) {
  .lead-m {
    margin: 20px 20px 40px;
    font-size: 15px;
    text-align: left;
    letter-spacing: 0.03em;
    text-align: justify;
  }
}
.lead-l {
  margin: 40px 0 60px;
  font-weight: 800;
  font-size: 24px;
  line-height: 2;
  text-align: center;
  letter-spacing: 0.1em;
  color: #333333;
}

@media (max-width: 767px) {
  .lead-l {
    margin: 20px 20px 40px;
    font-size: 15px;
    text-align: left;
    letter-spacing: 0.03em;
    text-align: justify;
  }
}
.pagination {
  margin-top: 90px;
}
.pagination .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pagination .page-numbers a,
.pagination .page-numbers span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #ab8d8c;
  border-radius: 50%;
  color: #ab8d8c;
  background: #fff;
  font-family: "Jost", sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  text-decoration: none;
  transition: 0.3s;
}
.pagination .page-numbers a:hover,
.pagination .page-numbers .current {
  color: #fff;
  background: #ab8d8c;
}
.pagination .page-numbers .dots {
  width: auto;
  border: none;
  background: transparent;
  color: #ab8d8c;
}

.pagination__arrow {
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}

.pagination__arrow--prev {
  transform: rotate(-135deg);
}

.pagination__arrow--next {
  transform: rotate(45deg);
}

@media screen and (max-width: 767px) {
  .pagination {
    margin-top: 56px;
  }
  .pagination .page-numbers {
    gap: 8px;
  }
  .pagination .page-numbers a,
  .pagination .page-numbers span {
    width: 38px;
    height: 38px;
    font-size: 1.5rem;
  }
}
.tagCard {
  padding: 60px 80px;
  margin-bottom: 40px;
  background: #fff;
}

.tagCard:last-child {
  margin-bottom: 0;
}

.tagCard__head {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 20px;
}

.tagCard__tag {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  padding: 10px 20px;
  border-radius: 6px;
  background: linear-gradient(90deg, #7d9ca0 0%, #abb7c9 100%);
}

.tagCard__tag span {
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}

.tagCard__title {
  margin: 0;
  color: #333;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.tagCard__top {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  letter-spacing: 0.05em;
}

.tagCard__content {
  flex: 1;
}

.tagCard__catch {
  margin: 0 0 30px;
  color: #333;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.6;
}

.tagCard__txt p {
  margin: 0;
  color: #333;
  font-size: 15px;
  line-height: 2;
}

.tagCard__txt p + p {
  margin-top: 18px;
}

.tagCard__visual {
  width: 300px;
}

.tagCard__visual img {
  display: block;
  width: 100%;
  border-radius: 20px;
}

.tagCard__lineTitle {
  position: relative;
  margin-top: 70px;
  margin-bottom: 40px;
  text-align: center;
}

.tagCard__lineTitle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: #d9d9d9;
}

.tagCard__lineTitle span {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 0 40px;
  background: #fff;
  color: #666;
  font-size: 14px;
  font-weight: 700;
}

.tagCard .imgList01 {
  grid-template-columns: repeat(2, 1fr);
  margin-bottom: 0;
}

.tagCard .imgList01__img {
  margin: 10px;
}

.tagCard .imgList01 img {
  width: 80%;
  margin: 0 auto;
}

.tagCard .imgList01__sub {
  margin: 0 0 10px;
  color: #8ea3a3;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
  flex-grow: 1;
}

.tagCard .imgList01__title {
  margin-bottom: 5px;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  flex-grow: 1;
}

.tagCard .imgList01__txt {
  margin: 0;
  text-align: center;
  color: #333;
  font-size: 14px;
  line-height: 2;
  flex-grow: 1;
}

.tagCard .imgList01__item {
  display: grid;
  grid-template-rows: auto 1fr auto auto;
}

@media (max-width: 767px) {
  .tagCard {
    padding: 32px 20px;
    margin-bottom: 20px;
  }
  .tagCard__head {
    gap: 10px;
    margin-bottom: 14px;
  }
  .tagCard__tag {
    min-width: 100px;
    border-radius: 8px;
  }
  .tagCard__tag span {
    font-size: 14px;
  }
  .tagCard__title {
    font-size: 21px;
  }
  .tagCard__top {
    display: block;
    margin-bottom: 10px;
  }
  .tagCard__catch {
    margin-bottom: 10px;
    font-size: 20px;
    margin-left: 10px;
    margin-right: 10px;
  }
  .tagCard__txt p {
    font-size: 14px;
    line-height: 1.8;
    margin-left: 10px;
    margin-right: 10px;
  }
  .tagCard__visual {
    width: 80%;
    margin: 0 auto;
    margin-top: 30px;
  }
  .tagCard .imgList01__img img {
    width: 100%;
  }
  .tagCard .imgList01__img {
    margin: 0;
  }
  .tagCard__lineTitle {
    margin-bottom: 40px;
  }
  .tagCard__lineTitle span {
    padding: 0 20px;
  }
  .tagCard .imgList01 {
    grid-template-columns: 1fr;
    gap: 20px 10px;
  }
  .tagCard .imgList01 {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 0;
  }
  .tagCard .imgList01__sub {
    margin-bottom: 14px;
    font-size: 11px;
    line-height: 1.4;
  }
  .tagCard .imgList01__title {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0;
  }
  .tagCard .imgList01__img {
    margin-bottom: 10px;
  }
  .tagCard .imgList01__txt {
    font-size: 10px;
    line-height: 1.6;
  }
  .tagCard__lineTitle {
    margin-bottom: 20px;
    line-height: 1.2;
  }
  .tagCard__lineTitle span {
    padding: 0 20px;
    font-size: 14px;
  }
}
.cardList01 {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.cardList01__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5%;
  padding: 50px 70px;
  background: #f8f8f6;
}

.cardList01__item--reverse {
  flex-direction: row-reverse;
}

.cardList01__content {
  width: 55%;
}

.cardList01__title {
  margin: 0 0 20px;
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.cardList01__txt p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2.2;
  letter-spacing: 0.04em;
}

.cardList01__txt p + p {
  margin-top: 12px;
}

.cardList01__img {
  width: 40%;
}

.cardList01__img img {
  display: block;
  width: 100%;
  border-radius: 10px;
}

@media (max-width: 767px) {
  .cardList01 {
    gap: 30px;
  }
  .cardList01__item,
  .cardList01__item--reverse {
    display: flex;
    flex-direction: column;
    padding: 30px 30px;
    gap: 30px;
  }
  .cardList01__content,
  .cardList01__img {
    width: 100%;
  }
  .cardList01__title {
    margin-bottom: 20px;
    font-size: 20px;
  }
  .cardList01__txt p {
    font-size: 15px;
    line-height: 2;
  }
  .cardList01__txt p + p {
    margin-top: 20px;
  }
}
/* =================================
labelTitle-blue 
================================= */
.labelTitle-blue {
  margin-bottom: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  border-radius: 12px;
  background: linear-gradient(90deg, #7f9f9f 0%, #aab6cf 100%);
  color: #fff;
  font-family: "Shippori Mincho B1", serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}

.labelTitle-beige {
  margin-bottom: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  border-radius: 12px;
  background: linear-gradient(90deg, #ab8d8c 0%, #d2ceb9 100%) !important;
  color: #fff;
  font-family: "Shippori Mincho B1", serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}

@media (max-width: 767px) {
  .labelTitle-blue,
  .labelTitle-beige {
    margin-bottom: 30px;
    min-height: 50px;
    padding: 10px 20px;
    letter-spacing: 0.03em;
    font-size: 20px;
    line-height: 1.3;
  }
}
.clinicSlider {
  overflow: hidden;
  position: relative;
}

.clinicSlider__item {
  text-align: center;
}

.clinicSlider__img {
  margin-bottom: 20px;
}

.clinicSlider__img img {
  display: block;
  width: 100%;
  height: 240px;
  -o-object-fit: cover;
     object-fit: cover;
}

.clinicSlider__title {
  margin: 0;
  color: #b89999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.clinicSlider__pagination {
  position: relative !important;
  margin-top: 50px;
}

.clinicSlider__pagination .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  margin: 0 10px !important;
  background: #d9d9d9;
  opacity: 1;
}

.clinicSlider__pagination .swiper-pagination-bullet-active {
  background: #b89999;
}

@media (max-width: 767px) {
  .clinicSlider__img {
    margin-bottom: 20px;
  }
  .clinicSlider__title {
    font-size: 18px;
  }
  .clinicSlider__pagination {
    margin-top: 24px;
  }
  .clinicSlider__pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0 6px !important;
  }
}
.contactBlock {
  background: #fff;
  margin-bottom: 120px;
}

.contactBlock__visual {
  position: relative;
}

.contactBlock__visual img {
  display: block;
  width: 100%;
  height: auto;
}

.contactBlock__label {
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  margin: 0;
  color: #fff;
  font-family: "DIN 2014", Arial, sans-serif;
  font-size: clamp(6rem, 8vw, 11rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
}

.contactBlock__inner {
  width: min(90%, 920px);
  margin: 0 auto;
  padding: 28px 0 80px;
}

.contactBlock__heading {
  text-align: center;
}

.contactBlock__text {
  margin: 0;
  color: #333;
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.08em;
}

.contactBlock__cta {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 30px;
}

.contactBlock__ctaItem {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}

.contactBlock__ctaItem img {
  display: block;
  width: 100%;
  max-height: 100px;
  -o-object-fit: contain;
     object-fit: contain;
}

@media (hover: hover) {
  .contactBlock__ctaItem:hover {
    opacity: 0.82;
    transform: translateY(-2px);
  }
}
@media screen and (max-width: 767px) {
  .contactBlock {
    margin-bottom: 80px;
  }
  .contactBlock__visual {
    overflow: hidden;
  }
  .contactBlock__label {
    bottom: -5px;
    font-size: 4.8rem;
  }
  .contactBlock__inner {
    width: min(90%, 560px);
    padding: 20px 0 40px;
  }
  .contactBlock__title {
    margin-bottom: 24px;
    font-size: 1.8rem;
  }
  .contactBlock__text {
    font-size: 1.4rem;
    line-height: 2;
  }
  .contactBlock__cta {
    grid-template-columns: 1fr;
    gap: 20px 0px;
    width: min(100%, 500px);
    margin: 30px auto 10px;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .contactBlock__ctaItem {
    width: 49%;
  }
  .contactBlock__ctaItem:nth-child(3) {
    width: 100%;
  }
}
.contactInfo {
  width: min(90%, 1000px);
  margin: 0 auto 60px;
}

.questionnaire,
.cancelPolicy {
  border-radius: 28px;
  padding: 48px;
}

.questionnaire {
  background: #edf4ed;
  margin-bottom: 40px;
}

.cancelPolicy {
  background: #eef2f4;
}

.questionnaire__title,
.cancelPolicy__title {
  position: relative;
  margin: 0;
  padding-left: 24px;
  color: #5a5555;
  font-size: 1.8rem;
  letter-spacing: 0.05em;
  font-weight: 700;
}

.questionnaire__title::before,
.cancelPolicy__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.questionnaire__title::before {
  background: #9aac9f;
}

.cancelPolicy__title::before {
  background: #9eb5b6;
}

.questionnaire__body {
  margin-top: 15px;
}

.questionnaire__body p {
  margin: 0 0 24px;
  color: #333;
  font-size: 1.5rem;
  line-height: 2;
}

.cancelPolicy__scroll p {
  margin: 0 0 24px;
  color: #333;
  font-size: 1.4rem;
  line-height: 1.6;
}
.cancelPolicy__scroll p strong {
  margin-bottom: 5px;
  display: inline-block;
}

.questionnaire__buttons {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.questionnaire__button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  border: 2px solid #4a9a67;
  border-radius: 999px;
  background: #fff;
  color: #4a9a67;
  text-decoration: none;
  font-weight: 700;
}

/* スクロール領域 */
.cancelPolicy__scroll {
  max-height: 420px;
  overflow-y: auto;
  margin-top: 20px;
  padding-right: 20px;
}

.cancelPolicy__scroll strong {
  font-weight: 700;
}

.cancelPolicy__scroll::-webkit-scrollbar {
  width: 6px;
}

.cancelPolicy__scroll::-webkit-scrollbar-thumb {
  background: #b9b9b9;
  border-radius: 999px;
}

@media screen and (max-width: 767px) {
  .questionnaire {
    margin-bottom: 20px;
  }
  .questionnaire,
  .cancelPolicy {
    padding: 30px 30px;
    border-radius: 20px;
  }
  .questionnaire__title::before,
  .cancelPolicy__title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 10px;
    height: 10px;
  }
  .questionnaire__title,
  .cancelPolicy__title {
    font-size: 1.5rem;
    letter-spacing: 0;
    line-height: 1.6;
    padding-left: 20px;
  }
  .questionnaire__buttons {
    grid-template-columns: 1fr;
  }
  .cancelPolicy__scroll {
    max-height: 320px;
    padding-right: 12px;
  }
}
.clinicInfo {
  position: relative;
  overflow: hidden;
  padding: 0px 0 80px;
  background: #d9cfcf;
}

.clinicInfo__bgTitle {
  width: 100%;
}

.clinicInfo__bgTitle img {
  width: 80%;
}

.clinicInfo__inner {
  position: relative;
  z-index: 2;
  width: min(90%, 1200px);
  margin: 0 auto;
}

.clinicInfo__top {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 36px;
  align-items: start;
  margin-top: -30px;
}

.clinicInfo__top {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 36px;
  align-items: stretch;
  margin-top: -30px;
}

.clinicInfo__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: none;
}

.clinicInfo__time {
  overflow: visible;
}

.clinicInfo__time img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  border: solid 2px #a88988;
}

.clinicInfo__address {
  margin-top: 54px;
  text-align: center;
  color: #333;
}

.clinicInfo__zip {
  font-family: "Noto Serif JP", sans-serif;
  font-size: 3rem;
  letter-spacing: 0.12em;
}

.clinicInfo__text {
  margin: 0 0 22px;
  font-family: "Noto Serif JP", sans-serif;
  font-size: 3.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.clinicInfo__station {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.8;
  color: #705e5d;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 767px) {
  .clinicInfo {
    padding: 0px 0 60px;
  }
  .clinicInfo__inner {
    width: min(90%, 560px);
  }
  .clinicInfo__bgTitle img {
    width: 100%;
  }
  .clinicInfo__top {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 0px;
  }
  .clinicInfo__map iframe {
    height: 260px;
  }
  .clinicInfo__time {
    width: 100%;
    height: auto;
  }
  .clinicInfo__time img {
    width: 100%;
  }
  .clinicInfo__address {
    margin-top: 32px;
  }
  .clinicInfo__zip {
    font-size: 1.6rem;
  }
  .clinicInfo__text {
    font-size: 2.2rem;
    line-height: 1.8;
  }
  .clinicInfo__station {
    font-size: 1.3rem;
    line-height: 1.8;
  }
}
.header {
  width: 100%;
  background: #fff;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 40px;
  margin: 24px 24px 24px 30px;
}

.header__logo img {
  display: block;
  width: 300px;
  height: auto;
}

.header__info {
  color: #4a4a4a;
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.header__info p {
  margin: 0;
}

.header__access {
  color: #666;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.02em;
}
.header__access strong,
.header__access span {
  display: block;
}
.header__access span.pc {
  display: inline-block;
}
.header__access strong {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 2px;
}

.header__buttons {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

@media screen and (max-width: 1180px) {
  .header__inner {
    gap: 24px;
    margin: 14px 20px;
    margin-left: 14px;
    margin-right: 30px;
  }
  .header__info,
  .header__access {
    font-size: 10px;
    line-height: 1.6;
  }
  .header__info strong,
  .header__access strong {
    font-size: 10px;
    font-weight: 700;
    margin-bottom: 2px;
  }
  .headerBtn {
    width: 140px;
    min-height: 70px;
    padding: 12px;
  }
  .headerBtn__main {
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  .header__inner {
    justify-content: space-between;
  }
  .header__logo img {
    width: 160px;
  }
  .header__info,
  .header__buttons {
    display: none;
  }
}
/* =================================
CTA
================================= */
.header__cta {
  position: absolute;
  top: 0;
  right: 30px;
  z-index: 999;
  display: flex;
  flex: 0 0 auto;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
  border: solid 1px #fff;
  border-radius: 10px;
}

.header__btn:hover {
  opacity: 0.9;
}

.header__btn {
  display: block;
  flex-shrink: 0;
  flex: auto 1 1;
}

.header__btn:last-child {
  border-right: 0;
}

.header__btn img {
  display: block;
  width: auto;
}

@media (max-width: 1080px) {
  .header__cta {
    position: fixed;
    top: auto;
    left: 50%;
    transform: translateX(-50%);
    bottom: -1px;
    max-width: 600px;
    width: 100%;
    border-radius: 10px 10px 0 0;
  }
  .header__btn img {
    width: 100%;
    height: auto;
  }
}
.pageFv {
  background: #eee;
}

.pageFv__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 284px;
}
.pageFv__visual h1,
.pageFv__visual p {
  margin: 0;
  color: #fff;
  font-family: "Shippori Mincho B1", serif;
  font-size: 38px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-align: center;
}
.pageFv__visual h1 span,
.pageFv__visual p span {
  display: block;
  margin-top: 10px;
  margin-bottom: 20px;
  font-family: "Jost", sans-serif;
  font-size: 18px;
  letter-spacing: 0.4em;
}

@media (max-width: 767px) {
  .pageFv__visual {
    height: 220px;
  }
  .pageFv__visual h1,
  .pageFv__visual p {
    font-size: 28px;
  }
  .pageFv__visual h1 span,
  .pageFv__visual p span {
    font-size: 14px;
  }
}
.home .pageFv__visual {
  background: url("../img/pageFv/home.png") center center/cover no-repeat;
}

.first .pageFv__visual {
  background: url("../img/pageFv/first.png") center center/cover no-repeat;
}

.preventive .pageFv__visual {
  background: url("../img/pageFv/preventive.png") center center/cover no-repeat;
}

.reason .pageFv__visual {
  background: url("../img/pageFv/reason.png") center center/cover no-repeat;
}

.access .pageFv__visual {
  background: url("../img/pageFv/access.png") center center/cover no-repeat;
}

.contact .pageFv__visual {
  background: url("../img/pageFv/contact.png") center center/cover no-repeat;
}

.price .pageFv__visual {
  background: url("../img/pageFv/price.png") center center/cover no-repeat;
}

.recruit .pageFv__visual {
  background: url("../img/pageFv/recruit.png") center center/cover no-repeat;
}

.staff .pageFv__visual {
  background: url("../img/pageFv/staff.png") center center/cover no-repeat;
}

.news .pageFv__visual {
  background: url("../img/pageFv/news.png") center center/cover no-repeat;
}

.column .pageFv__visual {
  background: url("../img/pageFv/column.png") center center/cover no-repeat;
}

.case .pageFv__visual {
  background: url("../img/pageFv/case.png") center center/cover no-repeat;
}

/* =========================
medical
========================= */
.prevention .pageFv__visual {
  background: url("../img/pageFv/prevention.png") center center/cover no-repeat;
}

.pediatric .pageFv__visual {
  background: url("../img/pageFv/pediatric.png") center center/cover no-repeat;
}

.kids-ortho .pageFv__visual {
  background: url("../img/pageFv/kids-ortho.png") center center/cover no-repeat;
}

.ortho .pageFv__visual {
  background: url("../img/pageFv/ortho.png") center center/cover no-repeat;
}

.wisdom-tooth .pageFv__visual {
  background: url("../img/pageFv/wisdom-tooth.png") center center/cover no-repeat;
}

.metal-free .pageFv__visual {
  background: url("../img/pageFv/metal-free.png") center center/cover no-repeat;
}

.caries .pageFv__visual {
  background: url("../img/pageFv/caries.png") center center/cover no-repeat;
}

.implant .pageFv__visual {
  background: url("../img/pageFv/implant.png") center center/cover no-repeat;
}

.maternity .pageFv__visual {
  background: url("../img/pageFv/maternity.png") center center/cover no-repeat;
}

.pageMenu {
  padding: 28px 20px 34px;
  background: #fff;
  border-bottom: solid 1px #eee;
}

.pageMenu__list {
  display: flex;
  justify-content: center;
  gap: 42px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pageMenu__list a {
  display: block;
  color: #5b3f3f;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
.pageMenu__list a span {
  display: block;
  margin-top: 12px;
  color: #b99b9b;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.16em;
}
.pageMenu__list a:hover {
  opacity: 0.7;
}

.pageMenu__list > li {
  position: relative;
}

.pageMenu__sub {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-30%);
  width: 260px;
  padding: 12px 0;
  margin-top: 10px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 100;
}

.pageMenu__hasChild:hover .pageMenu__sub {
  opacity: 1;
  visibility: visible;
}

.pageMenu__sub li {
  list-style: none;
}

.pageMenu__sub a {
  display: block;
  padding: 12px 20px;
  font-size: 14px;
  line-height: 1.6;
  transition: 0.2s;
}

.footer {
  background: #fff;
  padding: 88px 0 40px;
}

.footer__inner {
  width: min(90%, 1040px);
  margin: 0 auto;
}

.footer__main {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 72px;
  align-items: start;
}

.footer__brand {
  text-align: center;
}

.footer__logo {
  display: inline-block;
  text-decoration: none;
}

.footer__logo img {
  display: block;
  width: 260px;
  height: auto;
}

.footer__nav {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 48px;
  align-items: start;
}

.footer__navCol {
  display: grid;
  gap: 22px;
}

.footer__navCol a,
.footer__navTitle {
  margin: 0;
  color: #4d3c3c;
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1.3;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.footer__navCol--medical {
  padding-top: 44px;
}

.footerBanner__recruit {
  max-width: 540px;
  width: 100%;
  margin: 80px auto;
  display: block;
}

.footerBanner__recruit img {
  width: 100%;
}

.footer__copy {
  margin: 72px 0 0;
  color: #6f5c5c;
  font-family: "jost", Arial, sans-serif;
  font-size: 1.1rem;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: center;
}

@media (hover: hover) {
  .footer__navCol a:hover,
  .footerRecruit:hover {
    opacity: 0.7;
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  .footer {
    padding: 40px 0 120px;
  }
  .footer__inner {
    width: min(88%, 560px);
  }
  .footer__main {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .footer__logo img {
    width: 200px;
    margin: 0 auto;
  }
  .footer__nav {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 24px;
  }
  .footer__navCol {
    gap: 16px;
  }
  .footer__navCol a,
  .footer__navTitle {
    font-size: 1.3rem;
    line-height: 1.5;
  }
  .footer__navCol--medical {
    padding-top: 0;
  }
  .footerBanner__recruit {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .footer__copy {
    margin-top: 44px;
    font-size: 1rem;
    line-height: 1.6;
  }
}
.footerLink {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  margin-top: 80px;
}
.footerLink a {
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.3s;
}
.footerLink a:hover {
  opacity: 0.8;
}

.footerLink__instagram {
  flex: 0 0 auto;
}
.footerLink__instagram img {
  display: block;
  width: 80px;
  height: 80px;
  width: auto;
}

.footerLink__recruit {
  flex: 0 0 auto;
}
.footerLink__recruit img {
  display: block;
  height: 120px;
  width: auto;
}

@media screen and (max-width: 767px) {
  .footerLink {
    flex-direction: column;
    gap: 20px;
    margin-top: 40px;
  }
  .footerLink__instagram img {
    width: 60px;
    height: 60px;
  }
  .footerLink__recruit img {
    margin-top: 20px;
    width: 100%;
    height: auto;
  }
}
.pageConcept {
  padding: 60px 0 80px;
}

.pageConcept__inner {
  max-width: 1100px;
  width: 90%;
  margin: 0 auto;
}

.pageConcept__title {
  margin: 0 0 44px;
  color: #ab8d8c;
  font-family: "Shippori Mincho B1", serif;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
}

.pageConcept_subtitle {
  margin-bottom: 40px;
  margin-top: -20px;
  color: #b99b9b;
  font-family: "Shippori Mincho B1", serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
}

.pageConcept__txt {
  text-align: center;
}

.pageConcept__txt p {
  margin: 0;
  color: #333;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.1em;
}

.pageConcept__txt p + p {
  margin-top: 14px;
}

p.pageConcept__note {
  font-size: 10px;
  color: #999;
  letter-spacing: 0.01em;
}

@media (max-width: 767px) {
  .pageConcept {
    padding: 40px 0 50px;
  }
  .pageConcept__title {
    margin-bottom: 28px;
    font-size: 26px;
    line-height: 1.7;
  }
  .pageConcept_subtitle {
    font-size: 18px;
  }
  .pageConcept__txt {
    padding-left: 20px;
    padding-right: 20px;
    text-align: left;
  }
  .pageConcept__txt p {
    font-size: 15px;
    line-height: 2;
  }
  .pageConcept__txt p + p {
    margin-top: 12px;
  }
}
.pageVisual {
  padding: 100px 0 120px;
  background: #f5f4f1 url("./img/pageVisual/bg.png") right bottom/contain no-repeat;
}

.pageVisual__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1160px;
  width: 85%;
  margin: 0 auto;
}

.pageVisual__text {
  width: 50%;
  text-align: justify;
}

.pageVisual__text h2 {
  margin: 0 0 60px;
  color: #7d6262;
  font-family: "Shippori Mincho B1", serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.pageVisual__text h2::after {
  content: "";
  display: block;
  width: 100px;
  height: 1px;
  margin-top: 36px;
  background: #d6caca;
}

.pageVisual__text p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2.4;
  letter-spacing: 0.04em;
}

.pageVisual__text p + p {
  margin-top: 30px;
}

.pageVisual__img {
  width: 45%;
}

.pageVisual__img img {
  display: block;
  width: 100%;
  border-radius: 30px;
}

@media (max-width: 767px) {
  .pageVisual {
    padding: 50px 0;
  }
  .pageVisual__inner {
    display: block;
  }
  .pageVisual__text,
  .pageVisual__img {
    width: 100%;
  }
  .pageVisual__text h2 {
    margin-bottom: 36px;
    font-size: 26px;
  }
  .pageVisual__text p {
    font-size: 14px;
    line-height: 2;
  }
  .pageVisual__img {
    margin-top: 40px;
  }
}
.qa {
  background: #fff;
  padding: 60px 0 96px;
}

.qa__inner {
  width: min(90%, 1000px);
  margin: 0 auto;
}

.qa__list {
  display: grid;
  gap: 20px;
}

.qaItem {
  background: #f7f7f7;
  border-radius: 20px;
  padding: 24px 34px 24px;
}

.qaItem__question,
.qaItem__answer {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 16px;
  align-items: start;
}

.qaItem__question {
  padding-bottom: 14px;
  border-bottom: 1px dotted #cfcfcf;
}

.qaItem__answer {
  padding-top: 14px;
}

.qaItem__label {
  font-family: "jost", Arial, sans-serif;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.3;
}

.qaItem__label--q {
  color: #9eb5b6;
}

.qaItem__label--a {
  color: #bfa7a7;
}

.qaItem__question p {
  margin: 0;
  color: #333;
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.08em;
}

.qaItem__answer p {
  margin: 0;
  color: #333;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}

.qaItem__question p {
  font-weight: 700;
}

.qaItem__answer strong {
  font-weight: 700;
}

@media screen and (max-width: 767px) {
  .qa {
    padding: 50px 0 60px;
  }
  .qa__inner {
    width: min(90%, 560px);
  }
  .qa__list {
    gap: 10px;
  }
  .qaItem {
    padding: 18px 18px 22px;
    border-radius: 10px;
  }
  .qaItem__question,
  .qaItem__answer {
    grid-template-columns: 30px 1fr;
    gap: 10px;
  }
  .qaItem__question {
    padding-bottom: 16px;
  }
  .qaItem__answer {
    padding-top: 18px;
  }
  .qaItem__label {
    font-size: 2rem;
  }
  .qaItem__question p,
  .qaItem__answer p {
    font-size: 1.4rem;
    line-height: 1.9;
    text-align: justify;
  }
}
.orthoFlowList {
  margin-top: 60px;
  border-top: 1px dashed #d9d9d9;
}
.orthoFlowList .orthoFlowList__item {
  display: flex;
  align-items: center;
  gap: 60px;
  padding: 42px 0;
  border-bottom: 1px dashed #d9d9d9;
}
.orthoFlowList .orthoFlowList__img {
  width: 220px;
  flex-shrink: 0;
}
.orthoFlowList .orthoFlowList__img img {
  display: block;
  width: 100%;
  border-radius: 8px;
}
.orthoFlowList .orthoFlowList__content {
  flex: 1;
}
.orthoFlowList .orthoFlowList__content p {
  margin: 0;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: justify;
}
.orthoFlowList .orthoFlowList__num {
  display: block;
  margin-bottom: 18px;
  color: #b89999;
  font-family: "Jost", sans-serif;
  font-size: 30px;
  line-height: 1;
}
.orthoFlowList .orthoFlowList__title {
  margin: 0 0 18px;
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.orthoFlowList .orthoFlowList__content p {
  padding: 10px 0;
  display: block;
}
.orthoFlowList .orthoFlowList_label {
  padding: 14px 20px 14px;
  text-align: center;
  text-align: center;
  display: block;
  border-bottom: 1px dashed #d9d9d9;
  background-color: #ede9e7;
}
.orthoFlowList .orthoFlowList_label span {
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

@media (max-width: 767px) {
  .orthoFlowList {
    margin-top: 20px;
  }
  .orthoFlowList .orthoFlowList__item {
    padding: 24px 0;
    gap: 20px;
  }
  .orthoFlowList .orthoFlowList__img {
    width: 35%;
    margin-bottom: 20px;
  }
  .orthoFlowList .orthoFlowList__num {
    margin-bottom: 10px;
    font-size: 22px;
  }
  .orthoFlowList .orthoFlowList__title {
    margin-bottom: 10px;
    font-size: 18px;
  }
  .orthoFlowList .orthoFlowList__content p {
    font-size: 13px;
    line-height: 2;
  }
}
.accessInfo {
  display: flex;
  align-items: center;
  gap: 70px;
}

.accessInfo__content {
  flex: 1;
}

.accessInfo__list {
  margin: 0;
}

.accessInfo__row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 40px;
}

.accessInfo__row + .accessInfo__row {
  margin-top: 46px;
}

.accessInfo__row dt {
  color: #9b7777;
  font-size: 16px;
  line-height: 2;
}

.accessInfo__row dd {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.accessInfo__img {
  width: 460px;
  flex-shrink: 0;
}

.accessInfo__img img {
  display: block;
  width: 100%;
  border-radius: 32px;
}

.access .clinicInfo__map iframe {
  height: 500px;
}

@media (max-width: 767px) {
  .accessInfo {
    display: block;
  }
  .accessInfo__row {
    grid-template-columns: 80px 1fr;
    gap: 5px;
  }
  .accessInfo__row + .accessInfo__row {
    margin-top: 28px;
  }
  .accessInfo__row dt,
  .accessInfo__row dd {
    font-size: 13px;
  }
  .accessInfo__img {
    width: 100%;
    margin-top: 40px;
  }
  .accessInfo__img img {
    border-radius: 20px;
  }
  .access .clinicInfo__map iframe {
    height: 300px;
  }
}
.routeBox {
  padding: 44px 56px 54px;
  border-radius: 24px;
  background: #f7f5f5;
  font-family: "Jost", sans-serif;
}

.routeBox__title {
  margin: 0 0 34px;
  color: #4c3a3a;
  font-family: "Shippori Mincho B1", serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-align: center;
}

.routeBox__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
}

.routeBox__item {
  position: relative;
}

.routeBox__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 66px;
  right: -25px;
  width: 14px;
  height: 14px;
  border-top: 3px solid #ccc;
  border-right: 3px solid #ccc;
  transform: rotate(45deg);
}

.routeBox__img {
  margin-bottom: 18px;
}

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

.routeBox__num {
  margin: -32px 0 8px 14px;
  color: #b89999;
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
}

.routeBox__txt {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

@media (max-width: 767px) {
  .routeBox {
    padding: 30px 20px;
    border-radius: 18px;
  }
  .routeBox__title {
    margin-bottom: 24px;
    font-size: 22px;
  }
  .routeBox__list {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .routeBox__item:not(:last-child)::after {
    top: auto;
    right: 50%;
    bottom: -22px;
    transform: translateX(50%) rotate(135deg);
  }
  .routeBox__num {
    margin-top: -28px;
    font-size: 24px;
  }
  .routeBox__txt {
    font-size: 13px;
  }
}
.staffAnkerList .ankerList__item:nth-child(1) {
  background: #cfd5e8;
}

.staffAnkerList .ankerList__item:nth-child(2) {
  background: #d6eeee;
}

.staffAnkerList .ankerList__item:nth-child(3) {
  background: #f3edc6;
}

.staffList__item {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  padding: 50px;
  border-radius: 40px;
}

.staffList__content {
  flex: 1;
}

.staffList__head {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 30px;
}

.staffList__position {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  height: 30px;
  background: #a8cfd6;
  border-radius: 999px;
  color: #4d3c3c;
  font-size: 14px;
  font-weight: 700;
}

.staffList__name {
  font-size: 26px;
  font-weight: 500;
  color: #5f4a4a;
  line-height: 1.4;
  font-family: "Noto Serif JP", serif;
}

.staffList__row {
  display: flex;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid #ddd;
}

.staffList__label {
  flex-shrink: 0;
  width: 90px;
  font-size: 14px;
  font-weight: 700;
  color: #b28f8f;
  line-height: 2;
}

.staffList__text {
  flex: 1;
}

.staffList__text p {
  font-size: 14px;
  line-height: 2;
  color: #5f5f5f;
}

.staffList__img {
  flex-shrink: 0;
  width: 280px;
}

.staffList__img img {
  width: 100%;
  border-radius: 20px;
  display: block;
}

@media screen and (max-width: 768px) {
  .staffList__item {
    flex-direction: column-reverse;
    gap: 32px;
    padding: 24px;
    border-radius: 20px;
  }
  .staffList__head {
    gap: 16px;
    margin-bottom: 0px;
  }
  .staffList__position {
    min-width: 120px;
    height: 30px;
    font-size: 13px;
  }
  .staffList__name {
    font-size: 28px;
  }
  .staffList__row {
    flex-direction: column;
    gap: 12px;
    padding: 20px 0;
  }
  .staffList__label {
    width: 100%;
    font-size: 14px;
  }
  .staffList__text p {
    font-size: 14px;
    line-height: 1.8;
  }
  .staffList__img {
    width: 100%;
  }
}
.staffList {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.staffList__item--reverse {
  flex-direction: row-reverse;
}

.staffList__img {
  width: 340px;
  flex-shrink: 0;
}

.staffList__img img {
  width: 100%;
  display: block;
  border-radius: 12px;
}

@media screen and (max-width: 768px) {
  .staffList__item,
  .staffList__item--reverse {
    flex-direction: column;
    gap: 24px;
    padding: 24px;
  }
  .staffList__item .staffList__img {
    width: 80%;
    margin: 20px auto;
  }
}
#doctor .staffList .staffList__position {
  background: #cfd5e8 !important;
}

#dentalHygienist .staffList .staffList__position {
  background: #d6eeee !important;
}

.staffAll__img {
  margin: 0 auto;
  margin-top: 80px;
  margin-bottom: 60px;
  width: 80%;
  display: block;
}
@media screen and (max-width: 768px) {
  .staffAll__img {
    width: 100%;
    margin-top: 40px;
  }
}

.doctorProfile {
  display: flex;
  gap: 80px;
}

.doctorProfile__img {
  width: 300px;
  flex-shrink: 0;
}

.doctorProfile__img img {
  display: block;
  width: 100%;
  border-radius: 28px;
}
@media screen and (max-width: 768px) {
  .doctorProfile__img img {
    width: 80%;
    margin: 0 auto;
  }
}

.doctorProfile__content {
  flex: 1;
}

.doctorProfile__name {
  margin: 0 0 60px;
  color: #4c3a3a;
  font-size: 48px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.12em;
  font-family: "Noto Serif JP", serif;
}

.doctorProfile__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}

.doctorProfile__section + .doctorProfile__section {
  margin-top: 60px;
}

.doctorProfile__title {
  margin: 0 0 30px;
  color: #b89999;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.doctorProfile__title::after {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 14px;
  background: #cdb8b8;
}

.doctorProfile__txt p,
.doctorProfile__list li {
  color: #333;
  font-size: 13px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

.doctorProfile__txt p {
  margin: 0;
}

.doctorProfile__list {
  margin: 0;
  padding-left: 1.2em;
}
.doctorProfile__list li {
  list-style: disc;
}

@media (max-width: 767px) {
  .doctorProfile {
    display: block;
  }
  .doctorProfile__img {
    width: 100%;
    margin-bottom: 32px;
  }
  .doctorProfile__name {
    margin-bottom: 36px;
    font-size: 38px;
  }
  .doctorProfile__cols {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .doctorProfile__section + .doctorProfile__section {
    margin-top: 40px;
  }
  .doctorProfile__title {
    margin-bottom: 20px;
    font-size: 17px;
  }
  .doctorProfile__txt p,
  .doctorProfile__list li {
    font-size: 13px;
    line-height: 1.8;
  }
}
.sterilizationFlowList__num.is-red {
  color: #d53d32;
}

.sterilizationFlowList__num.is-gold {
  color: #b58b2e;
}

.sterilizationFlowList__num.is-blue {
  color: #00a7b7;
}

.sterilizationFlowList .orthoFlowList__item:nth-child(3) {
  border-bottom: 0;
}

.sterilizationFlowList .orthoFlowList__item:nth-child(5) {
  border-top: 1px dashed #d9d9d9;
}

.sterilizationFlow__note {
  background: #f5f4f1;
  padding: 30px 40px 40px;
  margin-bottom: 40px;
}

.sterilizationFlow__noteTitle {
  margin-bottom: 10px;
  text-align: center;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.12em;
  color: #5a4642;
}

.sterilizationFlow__note p {
  font-size: 14px;
  line-height: 2;
  color: #4d403d;
}

@media (max-width: 767px) {
  .sterilizationFlowList.orthoFlowList .orthoFlowList__item {
    flex-direction: column;
  }
  .sterilizationFlowList.orthoFlowList .orthoFlowList__img {
    width: 80%;
  }
  .sterilizationFlow__note {
    margin-top: 10px;
    padding: 30px 20px;
    border-radius: 20px;
  }
  .sterilizationFlow__noteTitle {
    margin-bottom: 20px;
    font-size: 22px;
    line-height: 1.8;
  }
  .sterilizationFlow__note p {
    font-size: 14px;
    line-height: 2;
  }
}
.infection__inner {
  padding: 60px 80px 80px;
}

@media (max-width: 767px) {
  .infection__inner {
    padding: 40px 30px;
  }
}
.caries .tagCard__visual {
  width: 180px;
}

.contactMain {
  padding-bottom: 40px;
  max-width: 1060px;
  margin: 0 auto;
}
.contactMain .cancelPolicy__scroll {
  max-height: 100%;
}

.bg01 {
  background: url("../img/common/bg01.png") left top/contain no-repeat;
  background-position-y: 50px;
  background-attachment: fixed;
}

@media (max-width: 767px) {
  .bg01 {
    background-position-y: 450px;
  }
}
.menu__outer + .menuBg {
  margin-top: -85px;
  padding-top: 85px;
}

.columnList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px 40px;
}

.columnCard {
  border: 1px solid #e5e0de;
  background: #fff;
  display: block;
  padding: 32px 48px 42px;
  color: inherit;
  text-decoration: none;
}

.columnCard__img {
  margin-bottom: 34px;
}

.columnCard__img img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.columnCard__title {
  margin: 0 0 20px;
  color: #4c3a3a;
  font-family: "Noto Serif JP", serif;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.columnCard__meta {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 28px;
}

.columnCard__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  padding: 10px 24px;
  border-radius: 999px;
  background: #b89999;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

.columnCard__meta time {
  color: #4c3a3a;
  font-size: 15px;
  letter-spacing: 0.04em;
}

.columnCard__txt {
  margin: 0 0 42px;
  color: #555;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

.columnCard__btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  max-width: 100%;
  height: 56px;
  margin: 0 auto;
  background: #b89999;
  border-radius: 4px;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
}

.columnCard__btn span::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 9px;
  height: 9px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 767px) {
  .columnList {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .columnCard {
    padding: 24px 20px 32px;
  }
  .columnCard__title {
    font-size: 20px;
  }
  .columnCard__meta {
    gap: 16px;
  }
  .columnCard__btn a {
    width: 100%;
  }
}
.columnSingle {
  width: min(90%, 980px);
  margin: 0 auto;
}

.columnSingle__thumb {
  width: min(100%, 760px);
  margin: 40px auto 52px;
}

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

.columnSingle__head {
  margin-bottom: 70px;
}

.columnSingle__title {
  margin: 0 0 34px;
  color: #4c3a3a;
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.columnSingle__meta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
  margin-bottom: 40px;
}

.columnSingle__cat {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 140px;
  padding: 9px 24px;
  border-radius: 999px;
  background: #ab8d8c;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
}

.columnSingle__meta time {
  color: #4c3a3a;
  font-size: 1.5rem;
  letter-spacing: 0.05em;
}

.columnAuthor {
  display: flex;
  align-items: center;
  gap: 38px;
  margin-bottom: 100px;
  padding: 30px 30px;
  background: #f7f5f5;
  border-radius: 20px;
}

.columnAuthor__img {
  width: 130px;
  height: 130px;
  flex-shrink: 0;
  -o-object-fit: contain;
     object-fit: contain;
}

.columnAuthor__img img {
  display: block;
  width: 130px;
  height: 130px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  border-radius: 50%;
}

.columnAuthor__content {
  flex: 1;
}

.columnAuthor__name {
  margin: 0 0 2px;
  color: #4c3a3a;
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.04em;
  margin-bottom: 20px;
}

.columnAuthor__name strong {
  margin-left: 10px;
  font-size: 2rem;
}

.columnAuthor__row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 10px;
  align-items: start;
}

.columnAuthor__row + .columnAuthor__row {
  margin-top: 10px;
}

.columnAuthor__row span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 2px 0px;
  border: 1px solid #ab8d8c;
  border-radius: 4px;
  color: #ab8d8c;
  font-size: 1.1rem;
  line-height: 1.4;
}

.columnAuthor__row p {
  margin: 0;
  color: #4c3a3a;
  font-size: 1.3rem;
  line-height: 1.8;
  margin-top: -2px;
}

.columnSingle__body {
  color: #333;
  font-size: 1.7rem;
  line-height: 2;
}

.columnSingle__body p {
  margin-bottom: 24px;
  font-size: 1.7rem;
  line-height: 2.4;
}

.columnSingle__body h1,
.columnSingle__body h2 {
  position: relative;
  margin: 80px 0 40px;
  padding-bottom: 16px;
  padding-left: 25px;
  border-bottom: 1px dashed #d8d8d8;
  color: #4c3a3a;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
}

.columnSingle__body h1::before,
.columnSingle__body h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #d7d7d7;
}

.columnSingle__body h3 {
  margin: 60px 0 20px;
  color: #4c3a3a;
  font-size: 2.2rem;
  font-weight: 700;
}

.columnSingle__body ul {
  margin: 24px 0;
  padding-left: 1.5em;
}

.columnSingle__body li {
  margin-bottom: 12px;
}

.columnSingle__body img {
  display: block;
  max-width: 600px;
  width: 100%;
  height: auto;
  margin: 50px auto;
  border-radius: 10px;
}

.columnSingle__body strong {
  background: linear-gradient(transparent 60%, #f6efb7 60%);
}

@media screen and (max-width: 767px) {
  .columnSingle {
    width: min(92%, 560px);
  }
  .columnSingle__thumb {
    margin-bottom: 32px;
  }
  .columnSingle__title {
    font-size: 2.4rem;
  }
  .columnSingle__meta {
    justify-content: flex-start;
    gap: 20px;
  }
  .columnAuthor {
    display: block;
    padding: 28px 22px;
    margin-bottom: 70px;
    border-radius: 24px;
  }
  .columnAuthor__img {
    width: 96px;
    margin: 0 auto 22px;
  }
  .columnAuthor__row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .columnSingle__body {
    font-size: 1.4rem;
  }
  .columnSingle__body h1,
  .columnSingle__body h2 {
    font-size: 2.1rem;
    padding-left: 24px;
    margin-top: 40px;
  }
  .columnSingle__body p {
    font-size: 1.5rem;
    line-height: 2;
  }
}
.caseList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 48px 40px;
  margin-bottom: 40px;
}

.caseCard {
  border: 1px solid #e5e0de;
  background: #fff;
  display: block;
  padding: 50px 50px 50px 50px;
  color: inherit;
  text-decoration: none;
}

.caseCard__title {
  margin: 0 0 20px;
  color: #4c3a3a;
  font-family: "Noto Serif JP", serif;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.caseCard__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
}

.caseCard__meta__category {
  margin-bottom: 10px;
}

.caseCard__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  margin-right: 5px;
  border-radius: 999px;
  background: #b89999;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 10px;
}

.caseCard__meta span:not(.caseCard__cat) {
  color: #4c3a3a;
  font-size: 1.6rem;
}

.caseCard__photoBefore {
  margin-bottom: 20px;
}
.caseCard__photoBefore img {
  width: 80%;
  margin: 0 auto;
  display: block;
  border-radius: 10px;
}

.caseCard__photo {
  display: grid;
  grid-template-columns: 1fr 32px 1fr;
  align-items: center;
  gap: 10px;
  padding-bottom: 20px;
  border-bottom: 1px dashed #ddd;
}

.caseCard__photoItem img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
}

.caseCard__photoItem p {
  margin: 10px 0 0;
  color: #8fbfc0;
  font-family: "Jost", sans-serif;
  font-size: 2rem;
  text-align: center;
}

.caseCard__photoItem:first-child p {
  color: #b8b0ad;
}

.caseCard__arrow {
  position: relative;
  height: 20px;
}

.caseCard__arrow::before,
.caseCard__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 14px;
  height: 14px;
  border-top: 2px solid #ccc;
  border-right: 2px solid #ccc;
  transform: translateY(-50%) rotate(45deg);
}

.caseCard__arrow::before {
  left: 0;
}

.caseCard__arrow::after {
  left: 10px;
}

.caseCard__info {
  margin-top: 0px;
}

.caseCard__row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
}

.caseCard__row span {
  min-width: 90px;
  padding: 6px 12px;
  border: 1px solid #ab8d8c;
  border-radius: 4px;
  color: #ab8d8c;
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
}

.caseCard__row p {
  margin: 0;
  color: #333;
  font-size: 1.5rem;
  line-height: 1.4;
}

.caseCard__risk {
  margin: 20px 0 30px;
  color: #777;
  font-size: 1.1rem;
}

.caseCard__content {
  margin: 0px 0 30px;
  color: #777;
  line-height: 1.8;
  font-size: 1.5rem;
}

.caseCard__btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  max-width: 100%;
  height: 56px;
  margin: 0 auto;
  background: #ab8d8c;
  border-radius: 4px;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
}

.caseCard__btn span::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 9px;
  height: 9px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

@media screen and (max-width: 767px) {
  .caseList {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .caseCard {
    padding: 28px 20px 34px;
  }
  .caseCard__title {
    font-size: 2.2rem;
  }
  .caseCard__meta {
    flex-wrap: wrap;
    gap: 14px;
  }
  .caseCard__photo {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .caseCard__photoItem img {
    width: 80%;
    margin: 0 auto;
  }
  .caseCard__arrow {
    display: none;
  }
  .caseCard__row {
    align-items: flex-start;
  }
  .caseCard__btn a {
    width: 100%;
  }
  .caseCard__cat {
    padding: 8px 15px;
    font-size: 12px;
  }
}
.caseSingle {
  width: min(90%, 1000px);
  margin: 0 auto;
  margin-bottom: 40px;
  margin-top: 80px;
}

.caseSingle__head {
  margin-bottom: 50px;
}

.caseSingle__title {
  margin: 0 0 34px;
  color: #4c3a3a;
  font-family: "Noto Serif JP", serif;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.caseSingle__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}

.caseSingle__metaLeft {
  display: flex;
  align-items: center;
  gap: 24px;
}

.caseSingle__cat {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 140px;
  padding: 10px 24px;
  border-radius: 999px;
  background: #ab8d8c;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
}

.caseSingle__meta span:not(.caseSingle__cat),
.caseSingle__meta time {
  color: #4c3a3a;
  font-size: 1.6rem;
}

.caseSingle__photo {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 50px 1fr;
  align-items: center;
  gap: 44px;
  margin-bottom: 40px;
  padding-top: 60px;
}

.caseSingle__photo::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  height: 1px;
  background: #ccc;
}

.caseSingle__photoItem img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 10px;
}

.caseSingle__photoItem p {
  margin: 18px 0 0;
  color: #8fbfc0;
  font-family: "Jost", sans-serif;
  font-size: 2.6rem;
  text-align: center;
}

.caseSingle__photoItem:first-child p {
  color: #b8b0ad;
}

.caseSingle__arrow {
  position: relative;
  height: 30px;
}

.caseSingle__arrow::before,
.caseSingle__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 22px;
  height: 22px;
  border-top: 3px solid #ccc;
  border-right: 3px solid #ccc;
  transform: translateY(-50%) rotate(45deg);
}

.caseSingle__arrow::before {
  left: 0;
}

.caseSingle__arrow::after {
  left: 14px;
}

.caseSingle__infoBox {
  margin-top: 80px;
}

.caseSingle__info {
  padding: 30px 0;
  background: #f7f5f5;
  border-radius: 20px;
  margin-top: 20px;
}

.caseSingle__infoInner {
  width: min(90%, 1000px);
  margin: 0 auto;
}

.caseSingle__rowWrap {
  display: flex;
  gap: 48px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.caseSingle__row {
  display: flex;
  align-items: start;
  gap: 16px;
}

.caseSingle__row span {
  min-width: 130px;
  padding: 7px 12px;
  border: 1px solid #ab8d8c;
  border-radius: 4px;
  color: #ab8d8c;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
}

.caseSingle__row p {
  margin: 0;
  color: #333;
  font-size: 1.5rem;
}

.caseSingle__risk {
  margin: 24px 0 0;
  color: #777;
  font-size: 1.3rem;
}

.caseSingle__body {
  color: #333;
  font-size: 1.7rem;
  line-height: 2;
}

.caseSingle__body p {
  margin-bottom: 24px;
  font-size: 1.7rem;
  line-height: 2.4;
}

.caseSingle__body h1,
.caseSingle__body h2 {
  position: relative;
  margin: 80px 0 40px;
  padding-bottom: 16px;
  padding-left: 25px;
  border-bottom: 1px dashed #d8d8d8;
  color: #4c3a3a;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
}

.caseSingle__body h1::before,
.caseSingle__body h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #d7d7d7;
}

.caseSingle__body h3 {
  margin: 60px 0 20px;
  color: #4c3a3a;
  font-size: 2.2rem;
  font-weight: 700;
}

.caseSingle__body ul {
  margin: 24px 0;
  padding-left: 1.5em;
}

.caseSingle__body li {
  margin-bottom: 12px;
}

.caseSingle__body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 50px auto;
  border-radius: 20px;
}

.caseSingle__body strong {
  background: linear-gradient(transparent 60%, #f6efb7 60%);
}

.casePhotoBlock {
  margin-top: 100px;
}

.casePhotoBlock__head {
  position: relative;
  margin-bottom: 44px;
  border-bottom: 1px solid #ddd;
}

.casePhotoBlock__title {
  margin: 0;
  padding-bottom: 18px;
  color: #4c3a3a;
  font-family: "Noto Serif JP", serif;
  font-size: 4rem;
  font-weight: 500;
  line-height: 1.4;
}

.casePhotoBlock__en {
  position: absolute;
  right: 0;
  bottom: -15px;
  margin: 0;
  color: rgba(171, 141, 140, 0.18);
  font-family: "Jost", sans-serif;
  font-size: 9rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
}

.casePhotoGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 34px;
}

.casePhotoGrid__item {
  overflow: hidden;
  background: #ddd;
  border-radius: 14px;
  aspect-ratio: 4/3;
}

.casePhotoGrid__item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (max-width: 767px) {
  .caseSingle {
    margin-top: 40px;
  }
  .casePhotoBlock {
    margin-top: 60px;
  }
  .casePhotoBlock__title {
    font-size: 3.2rem;
  }
  .casePhotoBlock__en {
    font-size: 4.8rem;
    bottom: -8px;
  }
  .casePhotoGrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}
@media screen and (max-width: 767px) {
  .caseSingle__title {
    font-size: 2.6rem;
  }
  .caseSingle__meta {
    display: block;
  }
  .caseSingle__metaLeft {
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 16px;
  }
  .caseSingle__photo {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-top: 30px;
  }
  .caseSingle__arrow {
    display: none;
  }
  .caseSingle__photoItem {
    width: 80%;
    margin: 20px auto 0;
  }
  .caseSingle__photoItem p {
    font-size: 2rem;
  }
  .caseSingle__rowWrap {
    display: block;
  }
  .caseSingle__info {
    padding: 15px 0 30px;
    margin-top: 20px;
  }
  .caseSingle__row {
    margin-top: 14px;
    align-items: flex-start;
    flex-direction: column;
  }
  .caseSingle__row span {
    font-size: 1.3rem;
    padding: 6px 4px;
    min-width: 80px;
  }
  .caseSingle__row p {
    font-size: 1.4rem;
  }
  .caseSingle__body {
    font-size: 1.4rem;
  }
  .caseSingle__body h1::before,
  .caseSingle__body h2::before {
    top: 11px;
  }
  .caseSingle__body h1,
  .caseSingle__body h2 {
    font-size: 2rem;
    padding-left: 24px;
    margin-top: 60px;
    margin-bottom: 30px;
  }
  .caseSingle__body p {
    font-size: 1.5rem;
  }
}
.singleContactBlock {
  margin: 120px 0 120px;
}

.singleContactBlock__inner {
  padding: 60px 40px;
  background: #edf0ea;
  border-radius: 32px;
  text-align: center;
}

.singleContactBlock__en {
  margin: 0 0 10px;
  color: #ab8d8c;
  font-family: "jost", "Arial", sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.2em;
}

.singleContactBlock__title {
  font-size: 1.8rem;
}

@media screen and (max-width: 767px) {
  .singleContactBlock {
    margin-top: 80px;
    margin-bottom: 60px;
  }
  .singleContactBlock__inner {
    padding: 40px 20px;
    border-radius: 20px;
  }
}
.casePager {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  width: 90%;
  margin: 0 auto;
  margin-top: 120px;
}

.casePager__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-bottom: 120px;
  width: min(100%, 240px);
  height: 70px;
  border: 1px solid #ab8d8c;
  border-radius: 999px;
  color: #ab8d8c;
  text-decoration: none;
  font-size: 2rem;
  font-weight: 700;
  transition: 0.3s;
}

.casePager__item:hover {
  background: #ab8d8c;
  color: #fff;
}

.casePager__arrow {
  width: 14px;
  height: 14px;
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
}

.casePager__item--prev .casePager__arrow {
  transform: rotate(-135deg);
}

.casePager__item--next .casePager__arrow {
  transform: rotate(45deg);
}

@media screen and (max-width: 767px) {
  .casePager {
    margin-top: 60px;
    width: 100%;
    gap: 20px;
  }
  .casePager a {
    margin-bottom: 30px;
  }
  .casePager__item {
    width: 100%;
    height: 64px;
    font-size: 1.6rem;
  }
}
/* =================================
CapproachA
================================= */
.approach__list {
  display: flex;
  flex-direction: column;
}

.approach__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
  padding: 70px 0;
  border-top: 1px dotted #ccc;
}

.approach__item:last-child {
  border-bottom: 1px solid #ddd;
}

.approach__item--reverse {
  flex-direction: row-reverse;
}

.approach__content {
  width: 48%;
}

.approach__itemTitle {
  margin: 0 0 20px;
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.06em;
}

.approach__content p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2.2;
  letter-spacing: 0.04em;
}

.approach__content p + p {
  margin-top: 24px;
}

.approach__img {
  width: 42%;
}

.approach__img img {
  display: block;
  width: 100%;
  border-radius: 16px;
}

@media (max-width: 767px) {
  .approach {
    padding: 0;
  }
  .approach__head {
    margin-bottom: 50px;
  }
  .approach__en {
    margin-bottom: 12px;
    font-size: 12px;
  }
  .approach__title {
    font-size: 30px;
    line-height: 1.6;
  }
  .approach__item,
  .approach__item--reverse {
    display: block;
    width: 95%;
    margin: 0 auto;
    padding: 40px 0;
  }
  .approach__content,
  .approach__img {
    width: 100%;
  }
  .approach__img {
    width: 80%;
    margin: 0 auto;
    margin-top: 30px;
  }
  .approach__itemTitle {
    margin-bottom: 20px;
    font-size: 24px;
  }
  .approach__content p {
    font-size: 14px;
    line-height: 2.1;
  }
}
/* =================================
kidsFlowList
================================= */
.kidsFlowList {
  margin-top: 60px;
  border-top: 1px dashed #d9d9d9;
}
.kidsFlowList .kidsFlowList__item {
  display: flex;
  align-items: center;
  gap: 60px;
  padding: 42px 0;
  border-bottom: 1px dashed #d9d9d9;
}
.kidsFlowList .kidsFlowList__img {
  width: 320px;
  flex-shrink: 0;
}
.kidsFlowList .kidsFlowList__img img {
  display: block;
  width: 100%;
  border-radius: 8px;
}
.kidsFlowList .kidsFlowList__content {
  flex: 1;
}
.kidsFlowList .kidsFlowList__content p {
  margin: 0;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: justify;
}
.kidsFlowList .kidsFlowList__num {
  display: block;
  margin-bottom: 18px;
  color: #b89999;
  font-family: "Jost", sans-serif;
  font-size: 30px;
  line-height: 1;
}
.kidsFlowList .kidsFlowList__title {
  margin: 0 0 18px;
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
}
.kidsFlowList .kidsFlowList__content p {
  padding: 10px 0;
  display: block;
}
.kidsFlowList .kidsFlowList_label {
  padding: 14px 20px 14px;
  text-align: center;
  text-align: center;
  display: block;
  border-bottom: 1px dashed #d9d9d9;
  background-color: #ede9e7;
}
.kidsFlowList .kidsFlowList_label span {
  color: #4c3a3a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

@media (max-width: 767px) {
  .kidsFlowList {
    margin-top: 20px;
  }
  .kidsFlowList .kidsFlowList__item {
    padding: 24px 0;
    gap: 20px;
    flex-direction: column;
  }
  .kidsFlowList .kidsFlowList__img {
    width: 90%;
    margin-top: 20px;
  }
  .kidsFlowList .kidsFlowList__num {
    margin-bottom: 10px;
    font-size: 22px;
  }
  .kidsFlowList .kidsFlowList__title {
    margin-bottom: 10px;
    font-size: 18px;
  }
  .kidsFlowList .kidsFlowList__content p {
    font-size: 13px;
    line-height: 2;
  }
}
.kids-ortho .imgList01 {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 767px) {
  .kids-ortho .imgList01 {
    grid-template-columns: repeat(2, 1fr);
  }
}
.GrowthImg img {
  display: block;
  width: 100%;
  margin-bottom: 60px;
}

@media (max-width: 767px) {
  .tagCard .imgList01__title-m {
    font-size: 12px;
  }
  .kids-ortho .notice {
    padding: 0;
    margin-bottom: 20px;
  }
  .container-m {
    padding-bottom: 40px;
  }
  .GrowthImg img {
    margin-bottom: 40px;
  }
}
.kids-ortho .tagCard:nth-child(1) {
  --accent: #ac8990;
}
.kids-ortho .tagCard:nth-child(2) {
  --accent: #82988b;
}
.kids-ortho .tagCard:nth-child(3) {
  --accent: #80989b;
}
.kids-ortho .tagCard:nth-child(4) {
  --accent: #78929c;
}
.kids-ortho .tagCard {
  border: 1px solid color-mix(in srgb, var(--accent) 40%, #fff);
}
.kids-ortho .tagCard__tag {
  background: var(--accent);
}
.kids-ortho .tagCard__title {
  color: var(--accent);
}

.priceAnkerList .ankerList__item:nth-child(1) {
  background: #f3edc6;
}

.priceAnkerList .ankerList__item:nth-child(2) {
  background: #ead1e3;
}

.priceAnkerList .ankerList__item:nth-child(3) {
  background: #d6eeee;
}

.priceAnkerList .ankerList__item:nth-child(4) {
  background: #cfd5e8;
}

.priceAnkerList .ankerList__item:nth-child(5) {
  background: #d8ead8;
}

.priceAnkerList .ankerList__item:nth-child(6) {
  background: #e2d7c9;
}

.priceList {
  display: flex;
  flex-direction: column;
}

.priceBlock {
  padding: 40px 0;
}

.priceBlock__title {
  margin: 0 0 24px;
  padding: 20px 20px;
  border-radius: 10px;
  color: #4c3a3a;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-align: center;
}

.priceBlock:nth-child(1) .priceBlock__title {
  background: #f3edc6;
}

.priceBlock:nth-child(2) .priceBlock__title {
  background: #ead1e3;
}

.priceBlock:nth-child(3) .priceBlock__title {
  background: #d6eeee;
}

.priceBlock:nth-child(4) .priceBlock__title {
  background: #cfd5e8;
}

.priceBlock:nth-child(5) .priceBlock__title {
  background: #d8ead8;
}

.priceBlock:nth-child(6) .priceBlock__title {
  background: #e2d7c9;
}

.priceBlock:nth-child(7) .priceBlock__title {
  background: #d5ece8;
}

.priceTable__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 28px 0;
  border-bottom: 1px dotted #ddd;
}

.priceTable__content {
  position: relative;
  padding-left: 24px;
}

.priceTable__content::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #cfcfcf;
}

.priceTable__content h3 {
  margin: 0 0 8px;
  color: #333;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.priceTable__content p {
  margin: 0;
  color: #777;
  font-size: 14px;
  line-height: 1.6;
}

.priceTable__price {
  margin: 0;
  font-family: "Jost", sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #4c3a3a;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: right;
  white-space: nowrap;
}

.priceTable__price {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 4px;
  color: #5c4343;
  white-space: nowrap;
}

.priceTable__priceUnit {
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
}

.priceTable__priceTax {
  font-size: 10px;
  line-height: 1.2;
}

.priceTable__group {
  margin: 0;
  padding: 22px 0;
  border-bottom: 1px solid #ddd;
  color: #333;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 767px) {
  .priceBlock {
    padding: 20px 0;
  }
  .priceBlock__title {
    font-size: 17px;
  }
  .priceTable__row {
    display: block;
    padding: 22px 0;
  }
  .priceTable__price {
    margin-top: 10px;
    font-size: 22px;
    text-align: left;
    white-space: normal;
  }
  .priceTable__content h3 {
    font-size: 15px;
    margin: 0 0 4px;
  }
  .priceTable__content p {
    font-size: 11px;
  }
}
.priceBlock--implant .priceBlock__title {
  background: #dce8db;
}

.priceTable__sectionTitle {
  padding: 56px 20px 14px;
  text-align: center;
  border-bottom: 1px solid #bbb;
}

.priceTable__sectionTitle span {
  color: #4c3a3a;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.priceTable__priceLabel {
  margin-right: 10px;
  font-size: 20px;
  font-weight: 700;
  color: #5c4343;
}

@media (max-width: 767px) {
  .priceTable__sectionTitle {
    padding: 32px 16px 12px;
  }
  .priceTable__priceLabel {
    font-size: 18px;
  }
  .priceTable__priceUnit {
    font-size: 14px;
  }
}
.loan {
  display: block;
  margin-top: 80px;
}
.loan img {
  width: 80%;
  display: block;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .loan img {
    width: 100%;
  }
}

.deduction__item {
  padding: 20px 0 60px;
}

.deduction__title {
  margin: 0 0 40px;
  color: #6b5550;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.08em;
  padding-bottom: 10px;
  border-bottom: 1px solid #d9d9d9;
}

.deduction__content p {
  margin: 0;
  color: #333;
  font-size: 15px;
  line-height: 2.4;
  letter-spacing: 0.04em;
}

.deduction__content li {
  margin: 0;
  color: #333;
  font-size: 12px;
  line-height: 2.4;
  letter-spacing: 0.04em;
  list-style: disc;
  margin-left: 30px;
}
@media screen and (max-width: 768px) {
  .deduction__content li {
    line-height: 1.6;
  }
}

.deduction__content p + p {
  margin-top: 12px;
}

.deduction__img {
  width: min(100%, 560px);
  margin: 70px auto 0;
}

.deduction__img img {
  display: block;
  width: 100%;
}

@media (max-width: 767px) {
  .deduction__item {
    padding: 20px 0 40px;
  }
  .deduction__title {
    margin-bottom: 24px;
    font-size: 20px;
  }
  .deduction__content p {
    font-size: 14px;
    line-height: 2;
  }
  .deduction__img {
    margin-top: 40px;
  }
}
.implantmerit__img {
  display: block;
  margin: 0 auto;
}
.implantmerit__img img {
  width: 100%;
}

.maternityPrevent {
  padding: 100px 0;
  background: #fff;
}

.maternityPrevent__img {
  margin: 0 auto;
  margin-bottom: 60px;
  width: 80%;
  display: block;
}
.maternityPrevent__img img {
  display: block;
  width: 100%;
}

.caries_img img {
  width: 100%;
}

.maternityPrevent__content {
  margin-bottom: 60px;
  text-align: center;
}
.maternityPrevent__content p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.08em;
}
.maternityPrevent__content p + p {
  margin-top: 30px;
}

.maternityPrevent__btns {
  display: flex;
  justify-content: center;
  gap: 40px;
  width: 80%;
  margin: 0 auto;
}
.maternityPrevent__btns .c-btn01 {
  width: 360px;
  margin: 0;
}

@media (max-width: 767px) {
  .maternityPrevent {
    padding: 40px 0 60px;
  }
  .maternityPrevent__img {
    margin-bottom: 36px;
  }
  .maternityPrevent__content {
    margin-bottom: 36px;
    padding: 0 20px;
  }
  .maternityPrevent__content p {
    font-size: 15px;
    line-height: 2.2;
  }
  .maternityPrevent__content p + p {
    margin-top: 20px;
  }
  .maternityPrevent__btns {
    flex-direction: column;
    gap: 16px;
    padding: 0 20px;
  }
  .maternityPrevent__btns .c-btn01 {
    width: 100%;
  }
}
.biofilm_logo {
  width: 80%;
  max-width: 300px;
  display: block;
  margin: 0 auto;
  margin-top: 40px;
}

.mtmFlowList .mtmFlowList__num {
  color: #d53d32;
}

.selfcareOuter {
  width: 70%;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .selfcareOuter {
    width: 100%;
  }
}

.mtmFlowList__item {
  flex-direction: column;
}

.mtmFlowList__item .orthoFlowList__img {
  width: 80%;
}

.fv {
  position: relative;
  min-height: 800px;
  overflow: hidden;
  color: #fff;
}

/* 背景 */
.fv__bg {
  position: absolute;
  inset: 0;
}

.fv__bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* オーバーレイ */
.fv__shade {
  position: absolute;
  inset: 0;
}

/* ヘッダー */
.fv__head {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 32px 50px 0 50px;
}

.fv__logo {
  width: 280px;
  flex-shrink: 0;
  margin-top: 10px;
  border-right: 1px dotted rgba(255, 255, 255, 0.8);
  padding-right: 30px;
}
.fv__logo .yoko {
  display: block;
}
.fv__logo .tate {
  display: none;
}

.fv__logo img {
  width: 100%;
}

.fv__access {
  margin-top: 10px;
  font-size: 12px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.fv__access strong,
.fv__access span {
  display: block;
}

.fv__access strong {
  font-size: 14px;
  font-weight: 700;
}

/* CTA */
.fv__cta {
  position: absolute;
  top: 40px;
  right: 40px;
  z-index: 999;
  display: flex;
  flex: 0 0 auto;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
  border: solid 1px #fff;
  border-radius: 10px;
}

.fv__btn:hover {
  opacity: 0.9;
}

.fv__btn {
  display: block;
  flex-shrink: 0;
  flex: auto 1 1;
}

.fv__btn:last-child {
  border-right: 0;
}

.fv__btn img {
  display: block;
  width: auto;
  height: 78px;
}

/* コピー */
.fv__copy {
  position: absolute;
  top: 240px;
  right: 20px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.fv__copy h1 {
  margin: 0;
  font-size: 28px;
  line-height: 2;
  letter-spacing: 0.1em;
  color: #fff;
}

/* 丸アイコン */
.fv__points {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 62px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.fv__points img {
  display: block;
  width: 130px;
  height: auto;
}

/* バナー */
.fv__bnr__pc {
  width: auto;
  margin-left: 20px;
}

.fv__bnr__pc img {
  display: block;
  width: 300px;
  height: auto;
}

.fv__bnr__sp {
  display: none;
}

.banner__first {
  margin-bottom: 80px;
}
.banner__first img {
  display: block;
  width: 100%;
}

/* -----------------------------
Tablet
----------------------------- */
@media (min-width: 1200px) {
  .fv__copy {
    right: 10%;
  }
}
@media (max-width: 1080px) {
  .fv__cta {
    position: fixed;
    top: auto;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    max-width: 600px;
    width: 100%;
    border-radius: 10px 10px 0 0;
  }
  .fv__btn img {
    width: 100%;
    height: auto;
  }
}
@media (max-width: 1000px) {
  .fv {
    min-height: 700px;
  }
  .fv__logo {
    width: 300px;
  }
  .fv__copy h1 {
    font-size: 20px;
  }
  .fv__points {
    bottom: 50px;
  }
  .fv__points img {
    width: auto;
    height: 130px;
  }
  .fv__bnr__sp {
    max-width: 300px;
  }
}
/* -----------------------------
SP
----------------------------- */
@media (max-width: 767px) {
  .fv {
    min-height: 620px;
  }
  .fv__bg img {
    -o-object-position: center;
       object-position: center;
  }
  .fv__head {
    padding: 20px;
    gap: 10px;
  }
  .fv__logo {
    width: 130px;
    padding: 0;
    padding-right: 20px;
    margin-left: 10px;
    margin-right: 10px;
  }
  .fv__logo .yoko {
    display: none;
  }
  .fv__logo .tate {
    display: block;
  }
  .fv__access strong,
  .fv__access span {
    font-size: 1rem;
    letter-spacing: 0;
    line-height: 1.8;
  }
  .fv__copy {
    top: 170px;
    right: 10px;
  }
  .fv__copy h1 {
    font-size: 16px;
    line-height: 1.7;
  }
  .fv__points {
    bottom: 200px;
    display: flex;
    gap: 10px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
  .fv__points img {
    width: 100px;
    height: 100px;
  }
  .fv__bnr__pc {
    display: none;
  }
  .fv__bnr__sp {
    display: block;
    width: 80%;
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
  }
  .fv__bnr__sp img {
    width: 100%;
  }
  .banner__first {
    margin-bottom: 40px;
  }
}
.menu__outer {
  position: relative;
  z-index: 100;
  overflow: visible;
}

.menu {
  position: relative;
  z-index: 100;
  margin: -20px auto 0;
  width: 100%;
  max-width: 1200px;
  padding: 30px 40px 34px;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  overflow: visible;
}

.menu__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}

.menu__list > li {
  position: relative;
  flex-shrink: 0;
}

.menu__list > li > a {
  display: block;
  text-align: center;
  text-decoration: none;
  color: #4c3a3a;
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
}

.menu__en {
  display: block;
  margin-top: 8px;
  color: #b89a9a;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.menu__list > li > a:hover .menu__jp,
.menu__list > li > a:hover .menu__en {
  opacity: 0.7;
}

/* --------------------
  dropdown
-------------------- */
.menu__sub {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-30%);
  width: 280px;
  margin: 0;
  padding: 12px 0;
  list-style: none;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 9999;
}

.menu__hasChild:hover .menu__sub {
  opacity: 1;
  visibility: visible;
}

.menu__sub li {
  margin: 0;
}

.menu__sub a {
  display: block;
  padding: 12px 20px;
  color: #4c3a3a;
  font-size: 14px;
  line-height: 1.6;
  text-decoration: none;
  transition: 0.2s;
}

.menu__sub a:hover {
  background: #f7f7f7;
}

/* --------------------
  tablet
-------------------- */
@media (max-width: 1024px) {
  .menu__list {
    gap: 40px;
    flex-wrap: wrap;
  }
}
/* --------------------
  sp
-------------------- */
@media (max-width: 767px) {
  .menu {
    padding: 20px 40px 26px;
    border-radius: 16px;
    width: 100%;
  }
  .menu__list {
    gap: 16px 20px;
    justify-content: center;
  }
  .menu__jp {
    font-size: 13px;
  }
  .menu__en {
    font-size: 10px;
  }
  .menu__sub {
    width: 240px;
  }
}
.zero {
  padding: 90px 0 80px;
  background: #f9f9f9;
  background-image: url("./img/top/zero_bg.png") no-repeat;
  background-position: top;
  background-size: contain;
}

.zero__inner {
  max-width: 1200px;
  width: 95%;
  margin: 0 auto;
  padding: 0 20px;
}

/* 上段 */
.zero__content {
  display: grid;
  grid-template-columns: 1fr 420px;
  align-items: center;
  gap: 40px;
  margin-top: 60px;
}

/* 左 */
.zero__title {
  margin-bottom: 40px;
}

.zero__title img {
  display: block;
  width: 100%;
}

.zero__lead {
  margin: 0 0 28px;
  color: #5a4040;
  font-family: "Noto Serif JP", serif;
  font-size: 34px;
  line-height: 1.6;
}

.zero__desc p {
  margin: 0;
  color: #4c3a3a;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 3;
}

.zero__desc p + p {
  margin-top: 12px;
}

.zero__desc strong {
  font-weight: 700;
  background: #fff3a8;
  padding: 0.2em 0.3em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* 右 */
.zero__right img {
  display: block;
  width: 100%;
}

/* ボタン */
.zero__btns {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-top: 60px;
}

.zero__btns a {
  display: block;
  width: 470px;
}

.zero__btns img {
  display: block;
  width: 100%;
}

/* Tablet */
@media (max-width: 1024px) {
  .zero {
    padding: 80px 0 60px;
  }
  .zero__content {
    grid-template-columns: 1fr 320px;
    gap: 30px;
  }
  .zero__lead {
    font-size: 28px;
  }
  .zero__btns a {
    width: 360px;
  }
}
/* SP */
@media (max-width: 767px) {
  .zero {
    padding: 40px 0 50px;
    background-size: 115%;
    background-position: center top;
  }
  .zero__content {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 30px;
  }
  .zero__right {
    order: -1;
  }
  .zero__right img {
    width: 60%;
    margin: 0 auto;
  }
  .zero__lead {
    font-size: 24px;
    margin-bottom: 16px;
  }
  .zero__desc p {
    line-height: 2.4;
    font-size: 1.3rem;
  }
  .zero__btns {
    flex-direction: column;
    gap: 16px;
    margin-top: 40px;
  }
  .zero__btns a {
    width: 100%;
  }
}
.mtm {
  padding: 80px 0 100px;
  background: #f5f4f1;
}
.mtm .mtm__inner {
  width: 90%;
  max-width: 1150px;
  margin: 0 auto;
  text-align: center;
}
.mtm .mtm__icon {
  width: 40px;
  margin: 0 auto 28px;
}
.mtm .mtm__icon img {
  display: block;
  width: 100%;
}
.mtm .mtm__sub {
  margin: 0 0 10px;
  color: #8a7272;
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.mtm .mtm__title {
  margin: 0 0 50px;
  color: #4c3a3a;
  font-family: "Noto Serif JP", serif;
  font-size: 48px;
  font-weight: 400;
  line-height: 1.5;
}

/* sp */
@media (max-width: 767px) {
  .mtm {
    padding: 40px 0;
  }
  .mtm .mtm__icon {
    width: 30px;
    height: auto;
    margin-bottom: 10px;
  }
  .mtm .mtm__sub {
    font-size: 14px;
  }
  .mtm .mtm__title {
    margin-bottom: 30px;
    font-size: 24px;
  }
}
.okomari {
  padding: 88px 0 0;
  background: url("../img/top/okomari_bg.png") center center/cover no-repeat;
}

.okomari__inner {
  max-width: 1120px;
  width: 85%;
  margin: 0 auto;
}

.okomari__content {
  width: 430px;
}

.okomari__title {
  margin: 0 0 44px;
  color: #6f5555;
  font-family: "Noto Serif JP", serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.08em;
}

.okomari__btns {
  display: flex;
  gap: 24px;
}

.okomari__btn {
  position: relative;
  display: block;
  width: 202px;
}

.okomari__btn img {
  display: block;
  width: 100%;
}

.okomari__btn:hover {
  z-index: 10;
  opacity: 0.8;
}

.okomari__illust {
  position: relative;
  z-index: 99;
  width: 250px;
  margin: -50px 0 0 110px;
}

.okomari__illust img {
  display: block;
  width: 100%;
}

/* SP */
@media (max-width: 767px) {
  .okomari {
    padding-top: 50px;
    background: url("../img/top/okomari_bg_sp.png") center center/cover no-repeat;
  }
  .okomari__content {
    width: 100%;
  }
  .okomari__title {
    margin-bottom: 30px;
    font-size: 26px;
    line-height: 1.5;
    letter-spacing: 0.05rem;
  }
  .okomari__btns {
    gap: 14px;
  }
  .okomari__btn {
    width: calc(50% - 7px);
  }
  .okomari__illust {
    width: 180px;
    margin: -35px auto 0;
  }
}
.concept {
  padding: 100px 0 60px;
  background: #fff;
  overflow: hidden;
}
.concept .concept__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  max-width: 1120px;
  width: 90%;
  margin: 0 auto;
}
.concept .concept__content {
  width: 420px;
}
.concept .concept__head {
  width: 600px;
  margin-bottom: -30px;
}
.concept .concept__head img {
  display: block;
  width: 100%;
}
.concept .concept__sub {
  margin: 0 0 40px;
  color: #9b7777;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}
.concept .concept__main {
  margin: 0;
  color: #333;
  font-family: "Noto Serif JP", serif;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.08em;
}
.concept .concept__txt {
  margin: 40px 0 80px;
}
.concept .concept__txt p {
  margin: 0;
  color: #4c3a3a;
  font-size: 16px;
  line-height: 2.4;
  letter-spacing: 0.05em;
}
.concept .concept__txt p + p {
  margin-top: 16px;
}
.concept .concept__txt strong {
  background: #fff3a8;
}
.concept .concept__img {
  width: 680px;
  margin-right: -10%;
}
.concept .concept__img img {
  display: block;
  width: 100%;
}
.concept .c-btn01 {
  width: 80%;
  margin: 0;
}

@media (max-width: 767px) {
  .concept {
    padding: 0;
    margin-bottom: 60px;
  }
  .concept .concept__inner {
    display: flex;
    flex-direction: column-reverse;
    gap: 30px;
    width: 100%;
  }
  .concept .concept__content {
    width: 80%;
  }
  .concept .concept__img {
    width: 100%;
    margin: 50px 0 0;
  }
  .concept .concept__head {
    width: 94%;
    margin: 0 0 -20px -5%;
  }
  .concept .concept__sub {
    margin-bottom: 20px;
    font-size: 13px;
  }
  .concept .concept__main {
    font-size: 28px;
    line-height: 1.65;
  }
  .concept .concept__txt {
    margin: 20px 0 40px;
  }
  .concept .concept__txt p {
    font-size: 13px;
    letter-spacing: 0.03em;
  }
}
.topReason {
  padding: 120px 0 100px;
  background: url("../img/top/reason_bg01.png") top/cover no-repeat;
  position: relative;
}

.topReason__inner {
  max-width: 1160px;
  width: 90%;
  margin: 0 auto;
}

.topReason__head {
  margin-bottom: 100px;
  width: 90%;
  margin: 0 auto;
  z-index: 1;
  position: absolute;
  margin-left: 10%;
  margin-top: 30px;
}

.topReason__letter {
  z-index: 99;
  width: 38%;
  display: block;
}

.topReason__sub {
  margin: 0;
  color: #9b7777;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-top: 40px;
}

.topReason__main {
  max-width: 1000px;
  width: 60%;
  margin-left: auto;
  right: 0;
  margin-bottom: 80px;
}

.topReason__cards {
  width: 80%;
  margin: 0 auto;
  margin-bottom: 60px;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

.topReason__card {
  width: calc(50% - 20px);
}

.topReason__card img {
  display: block;
  width: 100%;
}

.topReason__main img,
.topReason__card img,
.topReason__support img {
  display: block;
  width: 100%;
}

.topReason__support {
  display: block;
  width: 80%;
  margin: 50px auto 0;
}

@media (max-width: 767px) {
  .topReason {
    padding: 0px 0 30px;
    background-position: center top;
  }
  .topReason__head {
    position: relative;
    margin-bottom: 20px;
  }
  .topReason__letter {
    width: 80%;
  }
  .topReason__sub {
    font-size: 16px;
    margin-top: 20px;
  }
  .topReason__main {
    width: 90%;
    margin-bottom: 30px;
  }
  .topReason__cards {
    width: 100%;
    gap: 10px;
    margin-bottom: 20px;
  }
  .topReason__card {
    grid-column: auto;
    margin: 0;
    width: calc(50% - 5px);
  }
  .topReason__support {
    width: 100%;
    margin-top: 30px;
    display: block;
  }
}
.mamatokodomo {
  padding: 80px 0 80px;
  background: url("../img/top/reason_bg02.png") center bottom/cover no-repeat;
}

.mamatokodomo__inner {
  display: flex;
  align-items: center;
  gap: 70px;
  max-width: 960px;
  width: 90%;
  margin: 0 auto;
  padding: 40px 70px;
  background: #d85f9b;
  border-radius: 12px;
  margin-bottom: 60px;
}

.mamatokodomo__logo {
  width: 260px;
  flex-shrink: 0;
}

.mamatokodomo__logo img {
  display: block;
  width: 100%;
}

.mamatokodomo__txt {
  color: #fff;
}

.mamatokodomo__txt h2 {
  margin: 0 0 24px;
  font-size: 22px;
  line-height: 1.8;
  letter-spacing: 0.06em;
  letter-spacing: 0.1em;
  color: #fff;
}

.mamatokodomo__txt p {
  color: #fff;
  margin: 0;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.2em;
}

@media (max-width: 767px) {
  .mamatokodomo {
    padding: 30px 30px 70px;
  }
  .mamatokodomo__inner {
    display: block;
    padding: 30px 20px;
  }
  .mamatokodomo__logo {
    width: 160px;
    margin: 0px auto 30px;
    padding-left: 5px;
  }
  .mamatokodomo__txt h2 {
    font-size: 17px;
  }
  .mamatokodomo__txt p {
    font-size: 11px;
  }
}
.lifestage {
  padding: 110px 0 40px;
}
@media screen and (max-width: 767px) {
  .lifestage {
    padding: 60px 0 20px;
  }
}

.lifestage__inner {
  width: min(90%, 1120px);
  margin: 0 auto;
}

.lifestage__grid {
  margin-top: 60px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.lifestageCard {
  position: relative;
  border-radius: 10px;
  padding: 45px 36px 36px;
  min-height: 450px;
}

.lifestageCard--pink {
  background: #bfa7a7;
}

.lifestageCard--green {
  background: #9aac9f;
}

.lifestageCard--blue {
  background: #9eb5b6;
}

.lifestageCard__icon {
  position: absolute;
  top: -26px;
  left: 50%;
  transform: translateX(-50%);
}

.lifestageCard__icon img {
  width: 110px;
}

.lifestageCard__title {
  color: #fff;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-bottom: 20px;
}

.lifestageCard__menu {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lifestageButton {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 8px;
  min-height: 56px;
  color: #5f4c4c;
  text-decoration: none;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  transition: 0.3s;
}

.lifestageButton::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #d5d5d5;
}

.lifestageButton::after {
  content: "→";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
}

@media (hover: hover) {
  .lifestageButton:hover {
    transform: translateY(-2px);
    opacity: 0.85;
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  .lifestage__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .lifestageCard {
    min-height: auto;
    padding: 35px 20px 20px;
  }
  .lifestageCard__menu {
    gap: 6px;
  }
  .lifestageCard__icon img {
    width: 100px;
  }
  .lifestageCard__title {
    font-size: 1.8rem;
    margin-bottom: 18px;
  }
  .lifestageButton {
    font-size: 1.3rem;
    min-height: 52px;
    padding: 0 42px 0 20px;
  }
}
.worries {
  width: min(90%, 1120px);
  padding: 40px 0 140px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .worries {
    padding: 40px 0 80px;
  }
}

.worriesTab {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.worriesTab__button {
  height: 70px;
  border: none;
  border-radius: 10px 10px 0 0;
  background: #9eb5b6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  cursor: pointer;
  opacity: 0.9;
  transition: 0.3s;
}

.worriesTab__button.is-active {
  height: 80px;
  margin-top: -10px;
  opacity: 1;
}

.worriesTab__button:nth-child(1),
.worriesContent:nth-child(1) {
  background: #bfa7a7;
}

.worriesTab__button:nth-child(2),
.worriesContent:nth-child(2) {
  background: #9aac9f;
}

.worriesTab__button:nth-child(3),
.worriesContent:nth-child(3) {
  background: #9eb5b6;
}

.worriesTab__button img {
  width: 90px;
  height: auto;
}

.worriesWrap {
  border-radius: 0 0 20px 20px;
}

.worriesContent {
  display: none;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px 18px;
  padding: 40px;
  border-radius: 0 0 20px 20px;
}

.worriesContent.is-active {
  display: grid;
}

.worriesCard {
  position: relative;
  min-height: 70px;
  background: #fff;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  color: #4d3c3c;
  font-size: 1.6rem;
  line-height: 1.4;
  padding: 12px 70px 12px 20px;
  transition: 0.3s;
}

.worriesCard::after {
  content: "→";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.4rem;
}

.worriesContent:nth-child(1) .worriesCard::after {
  background: #a28383;
}

.worriesContent:nth-child(2) .worriesCard::after {
  background: #768a7c;
}

.worriesContent:nth-child(3) .worriesCard::after {
  background: #71888a;
}

@media (hover: hover) {
  .worriesCard:hover {
    transform: translateY(-2px);
    opacity: 0.85;
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  .worriesTab__button {
    height: 70px;
    display: flex;
    flex-direction: column; /* 横→縦 */
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 4px;
    font-size: 1rem;
    line-height: 1.2;
  }
  .worriesTab__button.is-active {
    height: 78px;
    margin-top: -8px;
  }
  .worriesTab__button img {
    width: 24px;
    flex-shrink: 0;
  }
  .worriesTab__button span {
    display: block;
    text-align: center;
    letter-spacing: 0;
    line-height: 1.2;
  }
}
@media screen and (max-width: 767px) {
  /* タブ */
  .worriesTab {
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
  }
  .worriesTab__button {
    height: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 4px;
    border-radius: 8px 8px 0 0;
    font-size: 1.2rem;
    line-height: 1.2;
  }
  .worriesTab__button.is-active {
    height: 60px;
    margin-top: -10px;
  }
  .worriesTab__button img {
    width: 60px;
    margin-top: -40px;
  }
  .worriesTab__button span {
    text-align: center;
    line-height: 1.2;
  }
  /* 中身 */
  .worriesWrap {
    margin-top: 0;
    border-radius: 0 0 12px 12px;
  }
  .worriesContent {
    display: none;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin: 0;
    padding: 20px 10px;
    border-radius: 0 0 12px 20px;
  }
  .worriesContent.is-active {
    display: grid;
  }
  .worriesContent {
    gap: 6px;
  }
  .worriesCard {
    min-height: 60px;
    font-size: 1.2rem;
    line-height: 1.4;
    padding: 6px 30px 6px 4px;
  }
  .worriesCard::after {
    right: 8px;
    width: 20px;
    height: 20px;
    font-size: 1.2rem;
  }
}
.message {
  background: #fff;
}

.message__visual {
  position: relative;
}

.message__visual img {
  display: block;
  width: 100%;
  height: auto;
}

.message__label {
  position: absolute;
  left: 50%;
  bottom: -14px;
  transform: translateX(-50%);
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-family: "DIN 2014", Arial, sans-serif;
  font-size: clamp(6rem, 8vw, 11rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
}

.message__body {
  position: relative;
  padding: 96px 0 88px;
  overflow: hidden;
}

.message__body {
  background: url("../img/top/message_bg.svg") no-repeat top -50px center;
  background-size: auto 90%;
}

.message__inner {
  position: relative;
  z-index: 1;
  width: min(90%, 860px);
  margin: 0 auto;
  text-align: center;
}

.message__title {
  margin: 0;
  color: #111;
  font-family: "Noto Serif JP", serif;
  font-size: 3.8rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.12em;
}

.message__en {
  margin: 18px 0 36px;
  color: #b89595;
  font-family: "DIN 2014", Arial, sans-serif;
  font-size: 1.4rem;
  line-height: 1;
  letter-spacing: 0.22em;
}

.message__text p {
  color: #333;
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.1em;
}

.message__text p {
  margin: 0 0 28px;
}

.message__text p:last-child {
  margin-bottom: 0;
}

.message__text strong {
  font-weight: 700;
  background: #fff3a8;
}

@media screen and (max-width: 767px) {
  .message__visual {
    overflow: hidden;
  }
  .message__visual img {
    width: 160%;
    max-width: none;
    transform: translateX(-18%);
  }
  .message__label {
    bottom: -8px;
    font-size: 4.8rem;
  }
  .message__body {
    padding: 40px 0 60px;
  }
  .message__body::before {
    background-size: 95% auto;
    opacity: 0.5;
  }
  .message__inner {
    width: min(88%, 860px);
  }
  .message__title {
    font-size: 2.6rem;
    line-height: 1.5;
    letter-spacing: 0.08em;
  }
  .message__en {
    margin: 14px 0 28px;
    font-size: 1.2rem;
  }
  .message__text p {
    font-size: 1.4rem;
    line-height: 2;
    text-align: left;
  }
  .message__text p {
    margin-bottom: 20px;
  }
}
.yobou {
  padding: 80px 0 100px;
  background: #f7f7f7;
}

.yobou__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
}

.yobou__heading {
  text-align: center;
  margin-bottom: 42px;
}

.yobou__lead {
  margin: 0 0 8px;
  color: #4d4d4d;
  font-family: "Noto Serif JP", serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.yobou__title {
  margin: 0;
  color: #9aa2bc;
  font-family: "Noto Serif JP", serif;
  font-size: 5.2rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.08em;
}

.qualification-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 20px;
  max-width: 800px;
  margin: 0 auto;
  margin-bottom: 60px;
  padding: 0;
  list-style: none;
}

.qualification-list__item--full {
  grid-column: 1/-1;
}

.qualification-list__item {
  display: flex;
  align-items: center;
  flex-direction: column;
  min-height: 40px;
  padding: 18px 30px;
  border-radius: 9999px;
  background: linear-gradient(90deg, #88d2d3 0%, #91becb 45%, #9b9fbb 100%);
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .qualification-list {
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 40px;
  }
  .qualification-list__item {
    min-height: 40px;
    padding: 15px 28px;
    border-radius: 44px;
    font-size: 14px;
    line-height: 1.5;
  }
}
.yobou__photos {
  display: grid;
  grid-template-columns: 1fr 1.14fr 1.05fr;
  gap: 10px;
  margin-bottom: 52px;
}

.yobou__photo {
  overflow: hidden;
}

.yobou__photo img {
  display: block;
  width: 100%;
  height: 280px;
  -o-object-fit: cover;
     object-fit: cover;
}

.yobou__text {
  width: min(90%, 900px);
  margin: 0 auto;
  text-align: center;
  color: #333;
  font-size: 1.6rem;
  line-height: 2.3;
  letter-spacing: 0.06em;
}

.yobou__text p {
  margin: 0 0 14px;
}

.yobou__text p:last-child {
  margin-bottom: 0;
}

.yobou__text strong {
  font-weight: 700;
}

.yobou .c-btn01 {
  margin-top: 60px;
}

@media screen and (max-width: 767px) {
  .yobou {
    padding: 40px 0 60px;
  }
  .yobou__inner {
    width: 100%;
  }
  .yobou__heading {
    width: min(90%, 560px);
    margin: 0 auto 20px;
  }
  .yobou__lead {
    font-size: 2rem;
    line-height: 1.6;
    margin-bottom: 0;
  }
  .yobou__title {
    font-size: 3.8rem;
    line-height: 1.4;
    margin-bottom: 20px;
  }
  .yobou__badges {
    width: min(90%, 560px);
    margin: 0 auto 36px;
    gap: 10px;
  }
  .yobou__badges img {
    width: min(50%, 340px);
  }
  .yobou__photos {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 20px;
  }
  .yobou__photo img {
    height: auto;
  }
  .yobou__photo img {
    display: block;
    width: 100%;
    height: 200px;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .yobou__text {
    width: min(88%, 560px);
    font-size: 1.4rem;
    line-height: 2;
    text-align: left;
  }
}
.latest {
  background: #fff;
}

.latest__bg {
  position: relative;
  padding: 280px 0 80px;
  background: url("../img/top/latest_bg.png") no-repeat top center;
  background-size: cover;
}

.latest__inner {
  position: relative;
  z-index: 1;
  width: min(90%, 920px);
  margin: 0 auto;
}

.latest__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 48px;
}

.latest__titleWrap {
  display: flex;
  align-items: center;
  gap: 28px;
}

.latest__title {
  margin: 0;
  color: #5a4141;
  font-family: "DIN 2014", Arial, sans-serif;
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
}

.latest__ja {
  margin: 0;
  color: #8b7d7d;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.latest__more {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-width: 172px;
  min-height: 54px;
  padding: 0 52px 0 34px;
  border-radius: 10px;
  background: #fff;
  color: #4d3c3c;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: 0.3s;
}

.latest__more::after {
  content: "→";
  font-weight: normal;
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
}

.latest__item {
  position: relative;
  display: grid;
  grid-template-columns: 130px 12px 1fr 24px;
  align-items: center;
  gap: 10px;
  min-height: 80px;
  border-bottom: 1px solid #ddd;
  color: #4d3c3c;
  text-decoration: none;
  transition: 0.3s;
}

.latest__item::after {
  content: "→";
  font-weight: normal;
  justify-self: end;
  color: #5a4141;
  font-size: 1.6rem;
}

.latest__date {
  color: #4d3c3c;
  font-family: "jost", Arial, sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
}

.latest__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #bfa7a7;
}

.latest__text {
  overflow: hidden;
  color: #333;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-overflow: ellipsis;
}

@media (hover: hover) {
  .latest__more:hover,
  .latest__item:hover {
    opacity: 0.75;
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  .latest__bg {
    padding: 180px 0 64px;
    background-position: top center;
  }
  .latest__inner {
    width: min(88%, 560px);
  }
  .latest__head {
    margin-bottom: 10px;
    justify-content: space-between;
  }
  .latest__titleWrap {
    justify-content: center;
    gap: 16px;
    margin-bottom: 10px;
    margin-left: 10px;
    display: block;
    width: 40%;
  }
  .latest__titleWrap img {
    width: 100%;
  }
  .latest__title {
    font-size: 3rem;
    width: 40%;
  }
  .latest__ja {
    font-size: 1.3rem;
    margin-top: 20px;
  }
  .latest__more {
    min-height: 50px;
    font-size: 1.4rem;
  }
  .latest__item {
    grid-template-columns: 1fr 24px;
    gap: 8px 12px;
    min-height: auto;
    padding: 18px 0;
  }
  .latest__date {
    grid-column: 1/2;
    font-size: 1.3rem;
  }
  .latest__dot {
    display: none;
  }
  .latest__text {
    grid-column: 1/2;
    white-space: normal;
    font-size: 1.4rem;
    line-height: 1.7;
  }
  .latest__item::after {
    grid-column: 2/3;
    grid-row: 1/3;
  }
}/*# sourceMappingURL=style.css.map */