.locale-main { overflow: clip; }
.locale-subhero { padding: 98px 0 105px; text-align: center; background: #faf7f1; }
.locale-subhero h1 { max-width: 950px; margin: 0 auto; font-size: clamp(50px, 6vw, 88px); }
.locale-subhero p:last-child { max-width: 750px; margin: 26px auto 0; color: var(--body); font-size: clamp(18px, 1.9vw, 22px); }
.locale-hero {
  text-align: center;
  padding: 100px 0 94px;
  background: radial-gradient(ellipse 60% 55% at 50% 72%, #e6eedc 0, transparent 72%), #faf7f1;
}
.locale-hero-copy { max-width: 850px; }
.locale-hero h1 { font-size: clamp(50px, 7vw, 104px); margin: 20px 0 26px; }
.locale-lead { max-width: 740px; margin-inline: auto; font-size: clamp(18px, 2vw, 23px); line-height: 1.5; color: var(--body); }
.locale-badges { margin-top: 27px; }
.locale-badges img { height: 60px; width: auto; }
.locale-hero-image { margin-top: 78px; }
.locale-hero-screen { border-radius: 22px; }
.locale-hero-image img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #2c302b24;
  border-radius: 22px;
  box-shadow: 0 38px 80px #464e3530, 0 6px 14px #464e351c;
}
.locale-features { padding-block: 45px; }
.locale-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  align-items: center;
  gap: clamp(48px, 7vw, 116px);
  padding-block: 105px;
  border-bottom: 1px solid #dedfd9;
}
.locale-feature--flip { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); }
.locale-feature--flip .locale-feature-copy { order: 2; }
.locale-feature--flip .locale-feature-image { order: 1; }
.locale-feature-copy h2 { max-width: 550px; font-size: clamp(40px, 4vw, 62px); }
.locale-feature-copy > p:last-child { max-width: 540px; margin-top: 28px; color: var(--body); font-size: clamp(17px, 1.5vw, 20px); line-height: 1.65; }
.locale-feature-image { margin: 0; padding: 28px; border-radius: 34px; background: #f1f3ec; }
.locale-feature:nth-of-type(3n + 2) .locale-feature-image { background: #f3ede5; }
.locale-feature-image img { display: block; margin: auto; max-width: 100%; max-height: 640px; width: auto; height: auto; object-fit: contain; border-radius: 18px; box-shadow: 0 16px 32px #24251d1d; }
.locale-connection { padding: 120px 0; background: #edf2e7; }
.locale-connection-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: center; }
.locale-connection h2 { font-size: clamp(44px, 5vw, 72px); }
.locale-connection p:not(.section-label), .locale-values p { margin-top: 25px; color: var(--body); line-height: 1.65; }
.locale-connection ul { margin: 25px 0; padding-left: 1.3em; color: var(--body); }
.locale-connection li + li { margin-top: 6px; }
.locale-connection a { display: inline-block; color: var(--green); font-weight: 650; border-bottom: 1px solid currentColor; }
.locale-connection img { display: block; width: 100%; height: auto; border-radius: 22px; box-shadow: 0 24px 44px #30402b24; }
.locale-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; padding-block: 110px; }
.locale-values h2 { font-size: clamp(32px, 3.1vw, 45px); }
.locale-price { padding-block: 100px; }
.locale-price-card { max-width: 850px; margin: auto; padding: clamp(36px, 6vw, 74px); text-align: center; background: #f1f3ec; border-radius: 34px; }
.locale-price-number { color: var(--green); font-family: var(--display); font-size: 110px; line-height: 1; }
.locale-price-card h2 { margin-top: 18px; }
.locale-price-card p:not(.locale-price-number) { max-width: 640px; margin: 22px auto 0; color: var(--body); }
.locale-price-card .locale-price-note { font-size: 14px; }
.locale-last { padding: 110px 0 120px; background: #f7f7f2; text-align: center; }
.locale-last h2 { font-size: clamp(46px, 5vw, 76px); }
.locale-last p { margin-top: 18px; color: var(--body); font-size: 20px; }
.locale-last .hero-note { font-size: 14px; }
html:lang(ja-JP) .locale-main h1, html:lang(ja-JP) .locale-main h2 {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  letter-spacing: -.04em;
  line-height: 1.28;
}
@media (max-width: 800px) {
  .locale-hero { padding-top: 72px; }
  .locale-feature, .locale-feature--flip { grid-template-columns: 1fr; gap: 40px; padding-block: 80px; }
  .locale-feature--flip .locale-feature-copy, .locale-feature--flip .locale-feature-image { order: initial; }
  .locale-connection-grid { grid-template-columns: 1fr; }
  .locale-values { grid-template-columns: 1fr; gap: 45px; }
}
@media (max-width: 580px) {
  .locale-subhero { padding-block: 64px; }
  .locale-hero { padding: 56px 0 65px; }
  .locale-hero h1 { font-size: clamp(42px, 10vw, 61px); }
  .locale-hero-image { margin-top: 48px; width: calc(100% - 32px); }
  .locale-hero-image img { border-radius: 13px; }
  .locale-badges img { height: 64px; }
  .locale-feature { padding-block: 62px; }
  .locale-feature-image { padding: 18px; border-radius: 24px; }
  .locale-feature-image img { max-height: 550px; border-radius: 14px; }
  .locale-connection { padding-block: 70px; }
  .locale-connection-grid { gap: 38px; }
  .locale-values { padding-block: 70px; }
  .locale-last { padding-block: 80px; }
}
