/* TOPページ (top__) */
.top { padding-top: 0; }
.top__mv {
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: 80px;
  position: relative;
  background: var(--color-brand-pale) url("../images/top-hero.webp") center / cover no-repeat;
}
@media (max-width: 767px) {
  .top__mv { align-items: flex-start; padding-top: 110px; background-image: url("../images/top-hero-sp.webp"); }
}
.top__scroll { position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--color-white); text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45); }
.top__scroll-text { font-family: var(--font-en); font-size: 12px; letter-spacing: 0.24em; padding-left: 0.24em; }
.top__scroll-line { position: relative; display: block; width: 2px; height: 56px; background: rgba(255, 255, 255, 0.45); overflow: hidden; }
.top__scroll-line::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 50%; background: var(--color-white); animation: top-scroll 1.8s ease-in-out infinite; }
@keyframes top-scroll { 0% { transform: translateY(-100%); } 100% { transform: translateY(200%); } }
@media (prefers-reduced-motion: reduce) {
  .top__scroll-line::after { animation: none; }
}
@media (max-width: 767px) {
  .top__scroll { bottom: 14px; }
  .top__scroll-line { height: 40px; }
}
.top__mv-box { max-width: 640px; padding: 44px 48px; border-radius: 40px; background: rgba(255, 255, 255, 0.78); box-shadow: 0 0 40px 28px rgba(255, 255, 255, 0.78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
@media (max-width: 767px) {
  .top__mv-box { padding: 0; border-radius: 0; background: none; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
.top__mv-en { display: inline-block; margin-bottom: 16px; padding: 4px 18px; border-radius: 999px; background: var(--color-brand-pale); font-family: var(--font-en); font-size: 13px; letter-spacing: 0.16em; color: var(--color-brand); }
.top__mv-title { margin: 0; font-family: var(--font-mincho); font-weight: 700; font-size: 56px; line-height: 1.45; letter-spacing: 0.04em; color: var(--color-brand-dark); text-shadow: 0 2px 0 var(--color-white); }
@media (max-width: 767px) {
  .top__mv-title { font-size: 34px; }
}
.top__mv-lead { max-width: 480px; margin: 24px 0 0; font-size: 16px; line-height: 2; text-align: start; color: var(--color-text); }
@media (max-width: 767px) {
  .top__mv-lead { font-size: 14px; }
}
.top__mv-btn { margin-top: 36px; }
@media (max-width: 767px) {
  .top__mv-btn { display: none; }
}

.top__point-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 767px) {
  .top__point-list { grid-template-columns: 1fr; gap: 20px; }
}
.top__point { padding: 36px 28px; background: var(--color-white); border-radius: 24px; box-shadow: 0 8px 24px var(--color-card-shadow); }
.top__point-no { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 16px; border-radius: 50%; background: var(--color-accent); font-family: var(--font-en); font-size: 20px; color: var(--color-white); }
.top__point-title { margin: 0 0 10px; font-family: var(--font-mincho); font-size: 20px; font-weight: 700; }
.top__point-text { margin: 0; font-size: 14px; line-height: 2; color: var(--color-text-sub); text-align: start; }
.top__points { background: var(--color-brand-pale); }

.top__about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
@media (max-width: 767px) {
  .top__about-grid { grid-template-columns: 1fr; gap: 32px; }
}
.top__about-img { border-radius: 32px; box-shadow: 0 16px 40px var(--color-card-shadow); }
.top__text { margin: 0 0 1.6em; font-size: 15px; line-height: 2.2; text-align: start; }
@media (max-width: 767px) {
  .top__text { font-size: 14px; }
}

.top__area { background: var(--color-brand-pale); }
.top__area-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 767px) {
  .top__area-list { grid-template-columns: 1fr; gap: 24px; }
}
.top__area-card { overflow: hidden; background: var(--color-white); border-radius: 24px; box-shadow: 0 8px 24px var(--color-card-shadow); }
.top__area-img { width: 100%; aspect-ratio: 9 / 7; object-fit: cover; }
.top__area-body { padding: 22px 24px 28px; }
.top__area-name { margin: 0 0 8px; font-family: var(--font-mincho); font-size: 19px; font-weight: 700; }
.top__area-text { margin: 0; font-size: 14px; line-height: 1.95; color: var(--color-text-sub); text-align: start; }

.top__price-meta { margin: 0 0 12px; font-size: 13px; text-align: end; color: var(--color-text-sub); }
.top__price-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; background: var(--color-white); border-radius: 20px; overflow: hidden; box-shadow: 0 6px 18px var(--color-card-shadow); text-align: center; }
.top__price-table th { padding: 16px 8px; background: var(--color-brand); color: var(--color-white); font-weight: 700; font-size: 15px; }
.top__price-table th + th, .top__price-table td + td { border-left: 2px dotted var(--color-line); }
.top__price-row td { padding: 32px 8px; font-family: var(--font-en); font-size: 40px; line-height: 1.2; color: var(--color-brand); border-bottom: 2px dotted var(--color-line); }
.top__price-row small { margin-left: 2px; font-size: 15px; }
.top__price-note td { padding: 16px 8px; font-size: 13px; line-height: 1.8; color: var(--color-text-sub); }
.top__price-extra { margin: 28px 0 0; text-align: center; font-size: 17px; }
.top__price-extra strong { font-size: 24px; color: var(--color-accent); }
@media (max-width: 767px) {
  .top__price-table th { padding: 12px 4px; font-size: 13px; }
  .top__price-row td { padding: 24px 4px; font-size: 26px; }
  .top__price-row small { font-size: 12px; }
  .top__price-note td { padding: 12px 6px; font-size: 11px; }
  .top__price-extra { font-size: 15px; }
  .top__price-extra strong { font-size: 20px; }
}

.top__news { background: var(--color-white); }
.top__news-list { border-top: 2px dotted var(--color-line); }
.top__news-item { display: flex; gap: 24px; padding: 20px 8px; border-bottom: 2px dotted var(--color-line); font-size: 14px; }
@media (max-width: 767px) {
  .top__news-item { flex-direction: column; gap: 2px; }
}
.top__news-date { flex: none; font-family: var(--font-en); font-size: 15px; color: var(--color-accent-dark); }

.top__cta { background: linear-gradient(rgba(46, 140, 72, 0.82), rgba(46, 140, 72, 0.82)), var(--color-brand) url("../images/top-about.webp") center / cover no-repeat fixed; color: var(--color-white); text-align: center; }
.top__cta .common__heading-ja, .top__cta .common__heading-en, .top__cta .common__lead { color: var(--color-white); }
.top__cta .common__lead { text-align: center; }
@media (max-width: 767px) {
  .top__cta { background-attachment: scroll; }
}
