:root {
  --ink: #181512;
  --charcoal: #3d352e;
  --cream: #f6efe6;
  --ivory: #fefbf6;
  --sage: #9a8878;
  --sage-bright: #b88b62;
  --accent: #b88b62;
  --gold: #d2b494;
  --border: #e4d8ca;
  --muted: #9b8c7d;
  --espresso: #2e2721;
  --taupe: #b5a08d;
  --taupe-deep: #8b7766;
  --sand: #f0e5d8;
  --font-head: "Figtree", "Noto Sans JP", sans-serif;
  --font-body: "Figtree", "Noto Sans JP", sans-serif;
  --max: 1180px;
}

/* Japanese concept: mirror the live English composition. */
#concept {
  padding: 72px 0 76px;
}

#concept .concept-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 30px;
  align-items: start;
}

#concept .concept-head {
  padding-top: 4px;
}

#concept .concept-head .concept-rule {
  width: 36px;
  height: 2px;
  margin: 16px 0 12px;
  background: rgba(150, 122, 98, .72);
}

#concept .concept-head h2 {
  max-width: 480px;
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(28px, 3.1vw, 40px);
  font-weight: 800;
  letter-spacing: -.055em;
  line-height: 1.24;
}

#concept .concept-head .quote-line {
  display: block;
  margin-top: 8px;
  color: var(--accent);
  font-size: .98em;
  font-style: normal;
  letter-spacing: -.045em;
}

#concept .concept-sub {
  max-width: 370px;
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.65;
}

#concept .timeline {
  position: relative;
  display: grid;
  gap: 14px;
  margin-left: -8px;
}

#concept .timeline::before {
  position: absolute;
  top: 27px;
  bottom: 27px;
  left: 62px;
  border-left: 1px dashed rgba(150, 122, 98, .28);
  content: "";
}

#concept .t-item {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 52px 18px 1fr;
  gap: 9px;
  align-items: center;
}

#concept .t-icon,
#concept .concept-badge {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid rgba(150, 122, 98, .12);
  border-radius: 50%;
  background: #faf7f1;
  box-shadow: 0 10px 24px rgba(58, 45, 34, .05);
}

#concept .t-icon svg,
#concept .concept-badge svg {
  width: 21px;
  height: 21px;
  stroke-width: 1.6;
}

#concept .t-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #b4a18e;
  box-shadow: 0 0 0 7px #faf7f1;
}

#concept .t-bubble {
  position: relative;
  display: flex;
  min-height: 60px;
  align-items: center;
  padding: 15px 20px;
  border: 1px solid rgba(150, 122, 98, .24);
  border-radius: 14px;
  background: rgba(255, 255, 255, .88);
  font-size: 14px;
  line-height: 1.55;
  box-shadow: 0 10px 30px rgba(58, 45, 34, .04);
}

#concept .t-bubble::before {
  position: absolute;
  top: 50%;
  left: -7px;
  width: 12px;
  height: 12px;
  border-bottom: 1px solid rgba(150, 122, 98, .24);
  border-left: 1px solid rgba(150, 122, 98, .24);
  background: #fff;
  content: "";
  transform: translateY(-50%) rotate(45deg);
}

#concept .concept-footer {
  margin-top: 24px;
  padding-top: 23px;
  border-top: 1px solid rgba(150, 122, 98, .22);
  text-align: center;
}

#concept .concept-footer h3 {
  margin: 0 0 23px;
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 800;
  letter-spacing: -.045em;
}

#concept .concept-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

#concept .concept-step {
  position: relative;
  min-width: 0;
}

#concept .concept-step:not(:last-child)::after {
  position: absolute;
  top: 25px;
  right: -19px;
  color: rgba(184, 139, 99, .55);
  content: "\2192";
  font-size: 19px;
}

#concept .concept-badge {
  width: 58px;
  height: 58px;
  margin: 0 auto 12px;
  background: #fbf8f2;
}

#concept .concept-step strong {
  display: block;
  margin-bottom: 7px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .055em;
}

#concept .concept-step p {
  max-width: 205px;
  margin: 0 auto;
  color: #9b7561;
  font-size: 12px;
  line-height: 1.55;
}

/* Pricing rationale: same Start-to-Unlimited diagram as the English page. */
#pricing .wu-track {
  grid-template-columns: 88px minmax(0, 1fr) 88px;
  gap: 20px;
  align-items: start;
}

#pricing .wu-side {
  padding-top: 18px;
}

#pricing .wu-side .dot {
  width: 14px;
  height: 14px;
  border: 1px solid rgba(184, 139, 99, .45);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 5px rgba(184, 139, 99, .06);
}

#pricing .wu-side.start {
  align-items: flex-start;
  padding-top: 14px;
  text-align: left;
}

#pricing .wu-side.start .label {
  margin-top: 24px;
  color: #536156;
  font-size: 27px;
  font-weight: 800;
  letter-spacing: .08em;
}

#pricing .wu-side.start .label::after {
  margin-left: 10px;
  color: #9d8878;
  content: ">";
}

#pricing .wu-side.end {
  align-items: center;
  padding-top: 8px;
}

#pricing .wu-side.end .dot {
  display: block;
  width: auto;
  height: auto;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#pricing .wu-side.end .dot::before {
  color: var(--accent);
  content: "\221e";
  font-family: Georgia, serif;
  font-size: 70px;
  font-weight: 400;
  line-height: .75;
}

#pricing .wu-side.end .label {
  margin-top: 25px;
  color: var(--accent);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: .09em;
}

#pricing .wu-cols {
  gap: 22px;
  padding-top: 4px;
}

#pricing .wu-cols::before {
  top: 34px;
  right: -12px;
  left: -12px;
  background: rgba(184, 139, 99, .34);
}

#pricing .wu-cols > div::before {
  position: relative;
  z-index: 1;
  width: 58px;
  height: 58px;
  margin: 0 auto 13px;
  border: 1px solid rgba(150, 122, 98, .18);
  border-radius: 50%;
  background-color: #faf7f1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 21px 21px;
  box-shadow: 0 10px 24px rgba(58, 45, 34, .05);
}

#pricing .wu-cols > div:nth-child(1)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Crect x='4' y='5.5' width='16' height='14' rx='2'/%3E%3Cpath d='M8 3v5M16 3v5M4 10h16M8 13h3M8 16h5'/%3E%3C/svg%3E");
}

#pricing .wu-cols > div:nth-child(2)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Ccircle cx='12' cy='7' r='3'/%3E%3Cpath d='M5 20c.8-4.2 3.1-6.3 7-6.3s6.2 2.1 7 6.3'/%3E%3C/svg%3E");
}

#pricing .wu-cols > div:nth-child(3)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Cpath d='M5 7h14M5 12h14M5 17h14'/%3E%3Ccircle cx='9' cy='7' r='2' fill='%23faf7f1'/%3E%3Ccircle cx='15' cy='12' r='2' fill='%23faf7f1'/%3E%3Ccircle cx='11' cy='17' r='2' fill='%23faf7f1'/%3E%3C/svg%3E");
}

#pricing .wu-cols h3 {
  margin-bottom: 8px;
  font-size: 14px;
  letter-spacing: .07em;
}

#pricing .wu-cols p {
  max-width: 210px;
  margin: 0 auto;
  font-size: 12px;
  line-height: 1.55;
}

@media (max-width: 860px) {
  #concept .concept-grid {
    grid-template-columns: 1fr;
  }

  #concept .timeline {
    margin: 8px 0 0;
  }

  #concept .concept-cols {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 30px;
  }

  #concept .concept-step::after {
    display: none;
  }
}

@media (max-width: 640px) {
  #concept {
    padding: 54px 0 58px;
  }

  #concept .concept-head h2 {
    font-size: 29px;
  }

  #concept .t-item {
    grid-template-columns: 44px 14px 1fr;
    gap: 7px;
  }

  #concept .timeline::before {
    left: 51px;
  }

  #concept .t-icon {
    width: 44px;
    height: 44px;
  }

  #concept .t-bubble {
    min-height: 54px;
    padding: 12px 14px;
    font-size: 13px;
  }

  #concept .concept-cols {
    grid-template-columns: 1fr;
  }

  #pricing .wu-track {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  #pricing .wu-side.start,
  #pricing .wu-side.end {
    align-items: center;
    padding: 0;
    text-align: center;
  }

  #pricing .wu-side.start .label,
  #pricing .wu-side.end .label {
    margin-top: 10px;
  }

  #pricing .wu-cols {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  #pricing .wu-cols::before {
    display: none;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 18% 20%, rgba(255,255,255,.92) 0, rgba(255,255,255,.56) 22%, transparent 54%),
    radial-gradient(circle at 82% 18%, rgba(210,180,148,.12) 0, transparent 26%),
    linear-gradient(180deg, #fffdf8 0%, #f7f0e7 100%);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
.wrap { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; }
h1, h2, h3 { margin: 0; font-family: var(--font-head); line-height: 1.15; text-wrap: balance; }
h2 { font-size: clamp(38px, 5vw, 64px); font-weight: 400; letter-spacing: -.05em; }
h3 { font-weight: 600; }
section { padding: 110px 0; }
.eyebrow { margin: 0 0 14px; color: var(--sage); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.text-link { color: var(--taupe-deep); font-weight: 700; text-decoration: none; }
.text-link:hover { text-decoration: underline; }

.site-header { position: sticky; top: 0; z-index: 50; border: 0; background: rgba(251,249,244,.92); backdrop-filter: blur(6px); }
.nav { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 24px; padding-top: 16px; padding-bottom: 16px; }
.logo { display: inline-flex; flex: 0 0 auto; align-items: center; text-decoration: none; }
.logo img { width: 128px; height: auto; }
.nav-links { display: flex; align-items: center; gap: 30px; margin-left: auto; }
.nav a { color: rgba(31,33,29,.88); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.nav a:hover { color: var(--sage); }
.nav a[aria-current="page"] { color: var(--sage); box-shadow: inset 0 -2px 0 var(--sage); padding-bottom: 4px; }
.language-link { color: var(--taupe-deep) !important; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 8px; padding: 15px 24px; border: 1px solid var(--ink); border-radius: 10px; background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; letter-spacing: .04em; line-height: 1.35; text-align: center; text-decoration: none; transition: opacity .18s ease, transform .22s ease, box-shadow .22s ease; }
.button:hover { opacity: .84; transform: translateY(-1px); }
.button.primary { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
.nav-cta { min-height: 46px; padding: 12px 18px; border-color: var(--taupe-deep) !important; background: var(--taupe-deep) !important; box-shadow: 0 12px 24px rgba(115,98,82,.16); color: var(--ivory) !important; }
.hamburger { display: none; width: 42px; height: 42px; flex: 0 0 auto; padding: 9px; border: 0; background: transparent; cursor: pointer; }
.hamburger span { display: block; width: 22px; height: 2px; margin: 5px auto; background: var(--ink); }

.hero { padding: 0 0 36px; background: linear-gradient(180deg, rgba(252,250,245,.86), rgba(252,250,245,.2)); }
.hero-grid { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: 18px; align-items: start; }
.hero-copy { position: relative; z-index: 2; padding: 74px 0 0; margin-right: -24px; }
.hero h1 { max-width: 680px; margin-bottom: 24px; font-size: clamp(48px, 5.6vw, 76px); font-weight: 800; letter-spacing: -.065em; line-height: 1.02; }
.hero-copy > p:not(.eyebrow) { max-width: 520px; margin: 0 0 34px; color: var(--charcoal); font-size: 17px; line-height: 1.75; }
.actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 26px; }
.hero .actions { margin-bottom: 42px; }
.hero-art { position: relative; min-height: 620px; overflow: visible; border-radius: 0 0 0 28px; background: linear-gradient(90deg, rgba(255,249,240,.68) 0%, rgba(255,249,240,.2) 18%, transparent 38%), url("/hero_background.png") 64% 42% / cover no-repeat; }
.hero-art::before { position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle at 4% 14%, rgba(255,248,234,.88) 0, rgba(255,248,234,.35) 20%, transparent 48%); content: ""; }
.hero-note { position: absolute; z-index: 2; right: 32px; bottom: 34px; max-width: 330px; margin: 0; padding: 30px 32px; border-radius: 20px; background: rgba(254,251,246,.94); box-shadow: 0 18px 42px rgba(46,39,33,.12); color: var(--charcoal); font-size: 18px; }
.quick-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); max-width: 690px; gap: 1px; margin-top: 12px; border: 1px solid var(--border); border-radius: 14px; background: var(--border); overflow: hidden; }
.quick-facts div { min-height: 84px; padding: 18px; display: grid; place-items: center; background: rgba(255,255,255,.82); text-align: center; }
.quick-facts strong { font-size: 13px; line-height: 1.45; }

.section-head { max-width: 790px; margin-bottom: 46px; }
.section-head h2 { margin-bottom: 20px; font-weight: 800; }
html[lang="ja"] .section-head h2 { font-size: clamp(29px,3.2vw,44px); line-height: 1.3; }
.section-head > p:last-child { max-width: 720px; color: var(--charcoal); font-size: 17px; }
.recognition { background: rgba(246,239,230,.72); }
.recognition .section-head { margin-left: auto; margin-right: auto; text-align: center; }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.recognition .cards { grid-template-columns: repeat(4, minmax(0,1fr)); align-items: start; }
.card, .plan, .trust-item { position: relative; padding: 30px; border: 1px solid var(--border); border-radius: 18px; background: rgba(255,255,255,.76); box-shadow: 0 12px 30px rgba(56,45,35,.045); }
.recognition .card { min-height: 250px; padding-top: 58px; }
.recognition .card:nth-child(2), .recognition .card:nth-child(4) { margin-top: 28px; }
.recognition .card::before { position: absolute; top: 24px; left: 30px; color: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.recognition .card:nth-child(1)::before { content: "01"; }
.recognition .card:nth-child(2)::before { content: "02"; }
.recognition .card:nth-child(3)::before { content: "03"; }
.recognition .card:nth-child(4)::before { content: "04"; }
.card h3, .plan h3 { margin-bottom: 14px; font-size: 23px; font-weight: 800; letter-spacing: -.03em; }
.card p, .plan p { color: var(--charcoal); }

.split { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 74px; align-items: center; }
#concept { background: rgba(255,253,248,.7); }
#concept .cards { grid-template-columns: 1fr; counter-reset: concept; }
#concept .card { padding: 24px 28px 24px 82px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; box-shadow: none; }
#concept .card::before { position: absolute; left: 24px; top: 22px; color: var(--gold); font-size: 24px; font-weight: 800; counter-increment: concept; content: "0" counter(concept); }
#services { background: var(--ivory); }
#services .section-head { margin-left: auto; margin-right: auto; text-align: center; }
.service-card { display: flex; min-height: 360px; flex-direction: column; padding-top: 42px; }
.service-card::after { position: absolute; right: 24px; top: 24px; color: var(--gold); font-size: 36px; content: "↗"; }
.service-card .actions { margin-top: auto; }

#method { position: relative; overflow: hidden; background: var(--espresso); color: var(--ivory); }
#method::before { position: absolute; width: 520px; height: 520px; right: -220px; top: -230px; border: 1px solid rgba(210,180,148,.18); border-radius: 50%; content: ""; }
#method .section-head > p:last-child, #method .section-head p { color: #d7cabc; }
.pyramid { display: grid; gap: 10px; justify-items: center; filter: drop-shadow(0 18px 28px rgba(0,0,0,.18)); }
.pyramid div { padding: 22px 24px; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; background: rgba(255,255,255,.08); color: var(--ivory); text-align: center; }
.pyramid .top { width: 54%; background: #8b7766; }
.pyramid .middle { width: 74%; background: #6f6053; }
.pyramid .base { width: 94%; background: #4f453d; }

.future-self { padding: 90px 0; background: var(--cream); }
.contact-panel { padding: 54px 60px; border-radius: 24px; background: var(--ink); color: var(--ivory); }
.contact-panel h2 { max-width: 900px; margin-bottom: 18px; }
.contact-panel > p:not(.eyebrow) { max-width: 760px; color: #ddd1c4; font-size: 17px; }
.contact-panel .button.primary { border-color: var(--ivory); background: var(--ivory); color: var(--ink); }

.venues { background: rgba(246,239,230,.72); }
.venue-map { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.venue-map::before { position: absolute; inset: 50% 5% auto; height: 1px; background: var(--gold); content: ""; }
.venue-node { position: relative; display: grid; min-height: 220px; place-content: center; padding: 24px; border: 1px solid var(--border); border-radius: 50%; background: var(--ivory); text-align: center; }
.venue-node strong { font-size: 22px; }
.venue-node span { color: var(--muted); }

.plans { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.plan { display: flex; min-height: 390px; flex-direction: column; padding: 36px 30px; }
.plan:nth-child(2) { border-color: var(--taupe-deep); transform: translateY(-14px); }
.plan .price { margin-top: auto; color: var(--taupe-deep); font-size: 28px; font-weight: 800; }
.plan .button { margin-top: 16px; }
.founder-photo { min-height: 640px; border-radius: 0 0 28px 0; background: url("/foundation_photo.webp") center top / cover no-repeat; }
#founder .section-head { margin-bottom: 0; }
.trust-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1px; border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: var(--border); }
.trust-item { min-height: 170px; border: 0; border-radius: 0; box-shadow: none; }
.trust-item strong { display: block; margin-bottom: 8px; font-size: 19px; }
.faq { background: var(--cream); }
.faq details { padding: 24px 0; border-bottom: 1px solid var(--border); }
.faq summary { cursor: pointer; font-size: 17px; font-weight: 700; }
.faq details p { max-width: 820px; color: var(--charcoal); }
.steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin: 34px 0; counter-reset: steps; }
.step { position: relative; padding: 18px 26px 18px 58px; border-left: 1px solid rgba(255,255,255,.22); }
.step::before { position: absolute; left: 22px; color: var(--gold); font-weight: 800; counter-increment: steps; content: "0" counter(steps); }
.contact-support { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 24px; color: #d7cabc; font-size: 13px; }
.contact-support a { color: var(--gold); }

.breadcrumbs { padding-top: 32px; color: var(--muted); font-size: 13px; }
.article { max-width: 820px; }
.article h1 { margin: 18px 0 22px; font-size: clamp(42px,6vw,72px); letter-spacing: -.055em; }
.article h2 { margin: 62px 0 18px; font-size: clamp(30px,4vw,46px); }
.article h3 { margin-top: 34px; }
.article p, .article li { color: var(--charcoal); font-size: 17px; }
body[data-page-type="blog-index"] .hero { padding: 90px 0 40px; }
body[data-page-type="blog-index"] .hero h1 { max-width: 980px; }
.answer-box, .author-box { margin: 26px 0; padding: 28px; border: 1px solid var(--border); border-radius: 16px; background: var(--cream); }
.summary-graphic { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin: 34px 0; }
.summary-graphic div { padding: 20px 10px; border-radius: 12px; background: #eadaca; font-weight: 700; text-align: center; }

footer { padding: 68px 0 32px; background: #25211d; color: #f0ebe5; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 54px; }
.footer-grid img { filter: brightness(0) invert(1); }
.footer-grid p { color: #aaa197; }
.footer-links { display: grid; align-content: start; gap: 9px; }
.footer-links a { color: #d2ccc5; text-decoration: none; }

.registration-modal[hidden] { display: none; }
.registration-modal { position: fixed; inset: 0; z-index: 100; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(24,21,18,.74); backdrop-filter: blur(3px); }
.modal-card { position: relative; width: min(760px, calc(100% - 28px)); max-height: calc(100vh - 28px); margin: 14px auto; padding: 42px; overflow: auto; border: 1px solid var(--border); border-radius: 20px; background: var(--ivory); box-shadow: 0 30px 90px rgba(0,0,0,.28); }
.modal-close { position: absolute; z-index: 2; right: 20px; top: 12px; border: 0; background: none; cursor: pointer; font-size: 32px; }
.modal-card h2 { max-width: 560px; margin-bottom: 12px; font-size: 34px; font-weight: 600; }
.modal-intro { color: var(--muted); }
#growth-registration-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
#growth-registration-form > label, .contact-fieldset { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
input, select, textarea { width: 100%; padding: 13px 14px; border: 1px solid #cdbfaf; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(184,139,98,.32); outline-offset: 1px; }
.contact-fieldset { grid-column: 1 / -1; padding: 18px; border: 1px solid var(--border); border-radius: 12px; }
.contact-choice { display: grid; grid-template-columns: 150px 1fr; gap: 12px; align-items: center; }
.contact-choice label { display: flex; gap: 8px; align-items: center; }
.contact-choice input[type="checkbox"] { width: auto; }
.form-error { grid-column: 1 / -1; color: #a23b2a; }
.submit-button { grid-column: 1 / -1; }
.modal-success { padding: 50px 10px; text-align: center; }
.success-mark { display: grid; width: 64px; height: 64px; place-content: center; margin: 0 auto 22px; border-radius: 50%; background: #e2eadb; font-size: 30px; }
.modal-success strong { word-break: break-all; }
.floating-consultation { position: fixed; z-index: 45; right: 24px; bottom: 24px; min-width: 112px; min-height: 52px; padding: 12px 20px; border: 1px solid var(--taupe-deep); border-radius: 999px; background: var(--taupe-deep); box-shadow: 0 14px 34px rgba(46,39,33,.24); color: var(--ivory); cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
[data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
[data-reveal].in { opacity: 1; transform: none; }
:focus-visible { outline: 2px solid var(--sage-bright); outline-offset: 2px; }

@media (max-width: 980px) {
  .hamburger { display: block; }
  .nav-links { display: none; position: absolute; top: 66px; right: 24px; width: min(340px, calc(100vw - 36px)); padding: 22px; border: 1px solid var(--border); border-radius: 12px; background: var(--ivory); box-shadow: 0 18px 42px rgba(46,39,33,.14); }
  .nav-links.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
  .nav-links.is-open > a { display: block; }
  .nav-links .nav-cta { width: 100%; max-width: none; }
  .hero-grid, .split { grid-template-columns: 1fr; }
  .hero-copy { margin-right: 0; padding-top: 64px; }
  .hero-art { min-height: 560px; }
  .recognition .cards { grid-template-columns: 1fr 1fr; }
  .recognition .card:nth-child(2), .recognition .card:nth-child(4) { margin-top: 0; }
  .cards, .plans, .trust-grid { grid-template-columns: 1fr 1fr; }
  .venue-map { grid-template-columns: 1fr 1fr; }
  .venue-map::before { display: none; }
  .venue-node { min-height: 180px; border-radius: 18px; }
  .founder-photo { min-height: 560px; }
}
@media(max-width:800px) {
  .nav-links { gap: 12px; }
}
@media (max-width: 640px) {
  .wrap { width: min(var(--max), calc(100% - 30px)); }
  section { padding: 76px 0; }
  h2 { font-size: clamp(34px,10vw,48px); }
  .nav { min-height: 66px; }
  .logo img { width: 108px; }
  .nav-links { gap: 10px; }
  .nav-cta { max-width: 190px; padding: 10px 12px; font-size: 10px; }
  .hero { padding-bottom: 24px; }
  .hero-copy { padding-top: 52px; }
  .hero h1 { font-size: clamp(42px,12vw,58px); }
  .hero-art { min-height: 420px; background-position: 63% 38%; }
  .hero-note { right: 14px; bottom: 14px; left: 14px; max-width: none; padding: 22px; }
  .quick-facts, .recognition .cards, .cards, .plans, .trust-grid, .venue-map, .steps, .summary-graphic { grid-template-columns: 1fr; }
  .quick-facts { gap: 1px; }
  .quick-facts div { min-height: 60px; }
  .recognition .card, .service-card, .plan { min-height: auto; }
  .plan:nth-child(2) { transform: none; }
  .contact-panel { padding: 34px 24px; }
  .step { border-top: 1px solid rgba(255,255,255,.16); border-left: 0; }
  .founder-photo { min-height: 430px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .modal-card { padding: 34px 18px 24px; }
  .floating-consultation { right: 14px; bottom: 14px; }
  #growth-registration-form { grid-template-columns: 1fr; }
  .contact-choice { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* --------------------------------------------------------------------------
   Live-root UI parity layer
   Content and conversion behavior stay route-specific; visual rhythm follows
   the protected English root page.
   -------------------------------------------------------------------------- */
.wrap { width: auto; max-width: var(--max); padding-right: 24px; padding-left: 24px; }
body { line-height: 1.6; }
h1, h2, h3 { font-weight: 400; }
section { padding: 110px 0; }
.button { padding: 14px 26px; border-radius: 4px; font-size: 14.5px; font-weight: 500; letter-spacing: 0; }
.button.primary { background: var(--ink); }
.site-header { background: rgba(251,249,244,.92); }
.nav { max-width: var(--max); min-height: 0; margin: 0 auto; padding: 16px 24px; }
.nav-links { gap: 34px; }
.nav a { font-size: 13px; font-weight: 600; }
.nav-cta { display: none; padding: 13px 20px; border-radius: 10px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.hero { padding: 0 0 36px; background: radial-gradient(circle at 18% 18%, rgba(255,255,255,.98) 0, rgba(255,255,255,.72) 26%, rgba(255,255,255,0) 58%), linear-gradient(180deg, rgba(252,250,245,.86), rgba(252,250,245,.2)); }
.hero-grid { grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: 18px; }
.hero-copy { padding: 74px 0 0; margin-right: -24px; }
.hero .eyebrow { margin-bottom: 18px; font-size: 11px; letter-spacing: .24em; font-weight: 700; }
.hero h1 { max-width: 580px; margin-bottom: 24px; font-size: clamp(50px,6vw,80px); font-weight: 800; letter-spacing: -.06em; line-height: 1; text-wrap: balance; }
.hero-copy > p:not(.eyebrow) { max-width: 430px; margin-bottom: 42px; font-size: 17px; line-height: 1.72; letter-spacing: -.01em; }
.hero .actions { gap: 22px; margin: 0 0 34px; }
.hero .actions .button { min-width: 220px; padding: 18px 30px; border-radius: 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero .actions .text-link { display: inline-flex; min-width: 220px; min-height: 55px; align-items: center; justify-content: center; padding: 15px 26px; border: 1px solid var(--ink); border-radius: 10px; color: var(--ink); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.hero-art { min-height: 620px; border-radius: 0 0 0 28px; background: linear-gradient(90deg, rgba(255,249,240,.68) 0%, rgba(255,249,240,.24) 14%, rgba(255,249,240,.03) 26%, rgba(255,249,240,0) 36%), linear-gradient(180deg, rgba(255,255,255,.08), rgba(120,120,90,.04)), url("/hero_background.png") 64% 42%/cover no-repeat; }
.hero-art::before { opacity: .84; background: radial-gradient(circle at 4% 14%, rgba(255,248,234,.9) 0, rgba(255,248,234,.58) 13%, rgba(255,248,234,.14) 30%, transparent 52%), radial-gradient(circle at 8% 82%, rgba(255,250,242,.66) 0, rgba(255,250,242,.22) 16%, transparent 40%), linear-gradient(90deg, rgba(255,248,236,.4) 0 9%, rgba(255,248,236,.08) 20%, transparent 34%); }
.hero-note { right: auto; bottom: 78px; left: 24px; width: 286px; max-width: calc(100% - 24px); padding: 44px 28px 26px; border: 1px solid rgba(181,171,151,.24); border-radius: 22px; background: rgba(251,249,244,.96); box-shadow: 0 20px 34px rgba(47,43,35,.11); font-family: var(--font-head); font-size: 18px; line-height: 1.46; }
.hero-note::before { position: absolute; top: 18px; left: 28px; color: rgba(180,154,103,.8); content: "“"; font-size: 70px; line-height: .6; }
.quick-facts { max-width: 520px; margin-top: 0; border: 0; border-radius: 0; background: transparent; }
.quick-facts div { min-height: 42px; padding: 8px 10px; border-left: 1px solid rgba(154,136,120,.2); background: transparent; }
.quick-facts div:first-child { border-left: 0; }
.quick-facts strong { color: var(--muted); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }

html[lang="ja"] body { font-size: 15.5px; line-height: 1.78; }
html[lang="ja"] .accent { font-style: normal; }
html[lang="ja"] .hero h1 .accent { display: block; margin-top: .1em; }
html[lang="ja"] .hero h1 { max-width: 620px; font-size: clamp(38px,4.4vw,58px); line-height: 1.16; letter-spacing: -.045em; }
html[lang="ja"] .hero-copy > p:not(.eyebrow) { max-width: 500px; font-size: 16px; line-height: 1.9; }
html[lang="ja"] h2 { line-height: 1.3; letter-spacing: -.035em; }
html[lang="ja"] h3 { line-height: 1.45; letter-spacing: -.02em; }
html[lang="ja"] h1, html[lang="ja"] h2, html[lang="ja"] h3 { word-break: keep-all; overflow-wrap: break-word; }

.recognition { padding: 56px 0 46px; background: var(--cream); }
.recognition > .wrap { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 38px; align-items: start; }
.recognition .section-head { margin: 0; padding-top: 28px; text-align: left; }
.recognition .section-head h2 { max-width: 430px; margin: 0 0 20px; font-size: clamp(34px,4vw,54px); font-weight: 800; letter-spacing: -.055em; line-height: 1.02; }
html[lang="ja"] .recognition .section-head h2 { font-size: clamp(30px,3.2vw,44px); line-height: 1.28; }
.recognition .section-head > p:last-child { max-width: 360px; margin-top: 0; font-size: 15px; line-height: 1.65; }
.recognition .cards { grid-template-columns: 1fr 1fr; gap: 12px; }
.recognition .card { min-height: 238px; margin-top: 0 !important; padding: 24px 22px 18px; overflow: hidden; border: 0; border-radius: 20px; background-position: 70% center; background-size: cover; box-shadow: 0 14px 28px rgba(67,61,51,.09); }
.recognition .card::before { inset: 0; top: 0; left: 0; background: linear-gradient(90deg, rgba(251,249,244,.92) 0%, rgba(251,249,244,.74) 34%, rgba(251,249,244,.25) 62%, transparent 82%); content: "" !important; }
.recognition .card::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.12), transparent 44%, rgba(29,26,21,.08)); content: ""; }
.recognition .card:nth-child(1) { background-image: url("/recognition-01-gym-door.webp"); }
.recognition .card:nth-child(2) { background-image: url("/recognition-02-dumbbell.webp"); }
.recognition .card:nth-child(3) { background-image: url("/recognition-03-training-bag.webp"); }
.recognition .card:nth-child(4) { background-image: url("/recognition-04-weekly-planner.webp"); }
.recognition .card > * { position: relative; z-index: 1; }
.recognition .card h3 { max-width: 190px; margin-top: 0; font-size: 17px; font-weight: 800; line-height: 1.35; }
.recognition .card p { max-width: 205px; margin: 0; font-size: 13px; line-height: 1.55; }

#concept { padding: 72px 0 76px; }
#concept .split { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 30px; align-items: start; }
#concept .section-head { margin: 0; padding-top: 4px; }
#concept .section-head h2 { max-width: 460px; font-size: clamp(32px,4vw,48px); font-weight: 800; letter-spacing: -.05em; line-height: 1.08; }
html[lang="ja"] #concept .section-head h2 { font-size: clamp(29px,3.2vw,42px); line-height: 1.3; }
#concept .section-head > p:last-child { max-width: 360px; font-size: 14px; line-height: 1.7; }
#concept .cards { gap: 14px; }
#concept .card { min-height: 76px; padding: 16px 20px 16px 84px; border: 1px solid rgba(181,171,151,.32); border-radius: 14px; background: rgba(255,255,255,.84); box-shadow: 0 8px 18px rgba(57,54,43,.05); }
#concept .card::before { top: 17px; left: 22px; display: grid; width: 42px; height: 42px; place-content: center; border-radius: 50%; background: rgba(247,243,236,.94); color: var(--sage); font-size: 13px; }
#concept .card p { margin: 4px 0 0; font-size: 13px; line-height: 1.5; }

#services { padding: 76px 0 84px; background: #fff; }
#services .section-head { margin-bottom: 34px; }
#services .section-head h2 { font-size: clamp(32px,4vw,48px); font-weight: 800; }
html[lang="ja"] #services .section-head h2 { font-size: clamp(29px,3.2vw,42px); }
#services .cards { padding: 26px; border: 1px solid var(--border); border-radius: 28px; background: rgba(255,255,255,.5); }
.service-card { min-height: 250px; padding: 22px 20px; border-radius: 16px; box-shadow: 0 14px 28px rgba(67,61,51,.06); }
.service-card::after { color: rgba(154,136,120,.45); font-size: 24px; }
.service-card h3 { font-size: 20px; font-weight: 800; }
.service-card p { font-size: 14px; line-height: 1.7; }
.service-card .button { width: 100%; min-height: 50px; border-radius: 10px; font-size: 12px; font-weight: 700; }

#method { padding: 54px 0 72px; background: var(--cream); color: var(--ink); }
#method::before { display: none; }
#method .split { min-height: 390px; grid-template-columns: minmax(0,1.02fr) minmax(340px,.98fr); gap: 28px; padding: 34px 36px; overflow: hidden; background: linear-gradient(90deg, rgba(248,244,236,.97) 0%, rgba(248,244,236,.9) 35%, rgba(248,244,236,.44) 58%, rgba(248,244,236,.08) 76%), url("/core_background.webp") center/cover no-repeat; }
#method .section-head { position: relative; z-index: 1; margin: 0; }
#method .section-head h2 { max-width: 520px; margin-bottom: 18px; font-size: clamp(28px,3.4vw,42px); font-weight: 800; line-height: 1.08; letter-spacing: -.055em; }
html[lang="ja"] #method .section-head h2 { font-size: clamp(28px,3vw,38px); line-height: 1.3; }
#method .section-head p, #method .section-head > p:last-child { max-width: 520px; color: var(--charcoal); font-size: 14px; line-height: 1.75; }
#method .pyramid { align-self: center; filter: drop-shadow(0 12px 20px rgba(67,61,51,.08)); }
#method .pyramid div { border: 1px solid rgba(132,114,97,.18); border-radius: 6px; color: var(--ink); }
#method .pyramid .top { background: #d4e3d1; }
#method .pyramid .middle { background: #dce6d8; }
#method .pyramid .base { background: #e8ece2; }

.future-self { padding: 62px 0; background: #fff; }
.future-self .contact-panel, #contact .contact-panel, .article .contact-panel { padding: 42px 46px; border: 1px solid rgba(181,171,151,.26); border-radius: 24px; background: linear-gradient(135deg, rgba(246,239,230,.9), rgba(255,255,255,.9)); box-shadow: 0 16px 34px rgba(67,61,51,.06); color: var(--ink); }
.contact-panel h2 { max-width: 850px; font-size: clamp(30px,4vw,48px); font-weight: 800; line-height: 1.08; }
html[lang="ja"] .contact-panel h2 { font-size: clamp(28px,3.3vw,42px); line-height: 1.3; }
.contact-panel > p:not(.eyebrow) { color: var(--charcoal); font-size: 15px; line-height: 1.75; }
.contact-panel .button.primary { border-color: transparent; background: linear-gradient(180deg, #c8956e, #ad7a5c); color: var(--ivory); box-shadow: 0 14px 28px rgba(146,88,73,.18); }

.venues { padding: 36px 0 32px; background: linear-gradient(90deg, rgba(246,242,234,.95) 0%, rgba(246,242,234,.9) 28%, rgba(246,242,234,.72) 52%, rgba(246,242,234,.58) 100%), url("/venues-background-park.webp") center/cover no-repeat; }
.venues > .wrap { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: 20px; align-items: center; }
.venues .section-head { margin: 0; padding: 24px; border: 1px solid rgba(181,171,151,.2); border-radius: 24px; background: rgba(255,255,255,.86); box-shadow: 0 14px 30px rgba(57,54,43,.05); }
.venues .section-head h2 { max-width: 340px; margin-bottom: 16px; font-size: clamp(30px,3.5vw,48px); font-weight: 800; line-height: 1.06; }
html[lang="ja"] .venues .section-head h2 { font-size: clamp(28px,3vw,40px); line-height: 1.28; }
.venues .section-head > p:last-child { margin: 0; font-size: 14px; }
.venue-map { grid-template-columns: 1fr 1fr; gap: 16px; min-height: 300px; align-content: center; }
.venue-map::before { display: none; }
.venue-node { min-height: 118px; padding: 18px; border: 1px solid rgba(181,171,151,.2); border-radius: 20px; background: rgba(255,255,255,.9); box-shadow: 0 18px 34px rgba(57,54,43,.1); text-align: left; }
.venue-node strong { color: #374434; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.venue-node span { font-size: 12px; }

#plans { padding: 78px 0 48px; }
#plans .section-head { width: 100%; max-width: none; margin-bottom: 34px; padding: 30px 34px; border-radius: 24px; background: linear-gradient(90deg, rgba(248,244,236,.96), rgba(248,244,236,.72)), url("/core_background.webp") center/cover no-repeat; }
#plans .section-head h2 { max-width: 760px; font-size: clamp(34px,4.2vw,52px); font-weight: 800; line-height: 1.02; }
html[lang="ja"] #plans .section-head h2 { font-size: clamp(30px,3.4vw,44px); line-height: 1.25; }
.plans { gap: 16px; }
.plan { min-height: 390px; padding: 174px 24px 26px; overflow: hidden; border: 1px solid rgba(181,171,151,.22); border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: 0 14px 30px rgba(67,61,51,.08); }
.plan::before { position: absolute; z-index: 0; inset: 0 0 auto; height: 146px; background: linear-gradient(135deg, rgba(181,160,141,.78), rgba(240,229,216,.92)); content: ""; }
.plan:nth-child(2) { border-color: var(--taupe-deep); transform: none; }
.plan:nth-child(2)::before { background: linear-gradient(135deg, #9d8976, #d4b79b); }
.plan:nth-child(3)::before { background: linear-gradient(135deg, #54483f, #aa8a6d); }
.plan > * { position: relative; z-index: 1; }
.plan h3 { font-size: 20px; font-weight: 800; letter-spacing: .08em; }
.plan p { font-size: 13px; line-height: 1.65; }
.plan .price { font-size: 24px; }
.plan .button { border-radius: 10px; font-size: 12px; font-weight: 700; }

#founder { padding: 50px 0 56px; background: var(--cream); }
#founder .split { grid-template-columns: minmax(280px,360px) minmax(0,1fr); gap: 42px; align-items: stretch; }
.founder-photo { width: 88%; min-height: 620px; justify-self: start; border-radius: 0; background-position: center 28%; }
#founder .section-head { padding: 44px 34px 34px 0; }
#founder .section-head h2 { max-width: 760px; padding-bottom: 28px; border-bottom: 1px solid rgba(154,136,120,.16); font-size: clamp(36px,3.8vw,56px); font-weight: 800; line-height: 1.05; letter-spacing: -.055em; }
html[lang="ja"] #founder .section-head h2 { font-size: clamp(30px,3.2vw,44px); line-height: 1.3; }
#founder .section-head p { color: var(--ink); font-size: 16px; line-height: 1.8; }

.trust-grid { grid-template-columns: repeat(3,1fr); gap: 0; border: 0; border-radius: 0; background: transparent; }
.trust-item { min-height: 0; padding: 0 22px; border-left: 1px solid rgba(154,136,120,.16); background: transparent; text-align: center; }
.trust-item:first-child { border-left: 0; }
.trust-item strong { color: #475843; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.trust-item p { margin: 0 auto; font-size: 13px; line-height: 1.5; }
.faq { padding: 72px 0; background: #fff; }
.faq .section-head h2 { font-size: clamp(32px,4vw,48px); font-weight: 800; }
html[lang="ja"] .faq .section-head h2 { font-size: clamp(29px,3.2vw,42px); }
.faq details { padding: 20px 0; }
.faq summary { font-size: 15px; }
.faq details p { font-size: 14px; line-height: 1.75; }
#contact { padding: 50px 0 72px; }
.steps { margin: 28px 0; }
.step { color: var(--charcoal); border-left-color: rgba(154,136,120,.2); font-size: 13px; }

.article { max-width: 820px; }
.article > section { padding: 34px 0; }
.article h1 { max-width: 760px; font-size: clamp(40px,5vw,60px); font-weight: 800; line-height: 1.08; }
html[lang="ja"] .article h1 { font-size: clamp(32px,4vw,48px); line-height: 1.35; letter-spacing: -.035em; }
.article h2 { margin-top: 48px; font-size: clamp(26px,3vw,36px); font-weight: 800; line-height: 1.25; }
html[lang="ja"] .article h2 { font-size: clamp(24px,2.7vw,32px); line-height: 1.45; }
.article p, .article li { font-size: 15px; line-height: 1.85; }
.answer-box, .author-box { border-color: rgba(181,171,151,.26); border-radius: 20px; background: var(--cream); }

footer { padding: 64px 0 28px; background: var(--ink); }
.footer-grid { grid-template-columns: 1.35fr 1fr 1.2fr; gap: 52px; margin-bottom: 26px; }
.footer-grid img { width: 150px; filter: brightness(0) invert(83%) sepia(12%) saturate(236%) hue-rotate(49deg) brightness(92%) contrast(86%); }
.footer-grid p, .footer-grid a { font-size: 14px; line-height: 1.8; }
.footer-contact-icons { display: flex; gap: 12px; margin-bottom: 28px; }
.footer-contact-icons a, .footer-contact-icons button { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; background: rgba(255,255,255,.06); color: #c9c5be; cursor: pointer; font: inherit; transition: transform .2s ease, background .2s ease, color .2s ease; }
.footer-contact-icons a svg, .footer-contact-icons button svg { width: 18px; height: 18px; }
.footer-contact-icons a:hover, .footer-contact-icons button:hover { background: var(--taupe-deep); color: var(--ivory); transform: translateY(-2px); }

.modal-card { border-radius: 26px; background: rgba(255,255,255,.98); box-shadow: 0 22px 44px rgba(57,54,43,.16); }
.modal-card h2 { font-size: 30px; font-weight: 800; line-height: 1.18; }
html[lang="ja"] .modal-card h2 { font-size: 27px; line-height: 1.45; }
#growth-registration-form > label, .contact-fieldset { font-size: 12px; letter-spacing: .04em; }
input, select, textarea { border-color: rgba(181,171,151,.42); border-radius: 10px; font-size: 15px; }
.submit-button { border-color: transparent !important; border-radius: 12px; background: linear-gradient(180deg, #c8956e, #ad7a5c) !important; box-shadow: 0 14px 28px rgba(146,88,73,.18); }
.floating-consultation { width: min(236px, calc(100vw - 28px)); min-height: 58px; border-color: transparent; background: linear-gradient(180deg, #b99572, #a17a5f); font-size: 13px; letter-spacing: .26em; text-transform: uppercase; }

@media (min-width: 861px) {
  .nav-cta { display: inline-flex; }
}
@media (max-width: 960px) {
  .hero-grid, #concept .split, #method .split, #founder .split { grid-template-columns: 1fr; }
  .hero-copy { margin-right: 0; }
  .hero-note { position: static; width: auto; max-width: none; margin-top: 20px; }
  .recognition > .wrap, .venues > .wrap { grid-template-columns: 1fr; }
  .recognition .section-head { padding-top: 0; }
  .recognition .section-head > p:last-child { max-width: 620px; }
  #method .split { padding: 28px 24px; }
  #founder .section-head { padding: 4px 0 0; }
  .founder-photo { width: 100%; max-width: 360px; }
}
@media (max-width: 800px) {
  .recognition .cards, .cards, .plans, .trust-grid { grid-template-columns: 1fr; }
  .recognition .card { min-height: 210px; }
  .trust-item { padding: 22px 0; border-top: 1px solid rgba(154,136,120,.16); border-left: 0; }
  .trust-item:first-child { border-top: 0; }
}
@media (max-width: 640px) {
  .wrap, .nav { padding-right: 18px; padding-left: 18px; }
  section { padding: 74px 0; }
  .hero-copy { padding-top: 54px; }
  html[lang="ja"] .hero h1 { max-width: none; font-size: clamp(34px,10vw,46px); line-height: 1.28; }
  .hero-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.78; }
  .hero .actions { gap: 12px; margin-bottom: 24px; }
  .hero .actions .button, .hero .actions .text-link { width: 100%; min-width: 0; }
  .hero-art { min-height: 420px; border-radius: 24px; }
  .hero-note { padding: 42px 20px 20px; font-size: 16px; }
  .quick-facts { grid-template-columns: 1fr; }
  .quick-facts div { border-top: 1px solid rgba(154,136,120,.2); border-left: 0; }
  .recognition > .wrap { gap: 24px; }
  .contact-panel, .future-self .contact-panel, #contact .contact-panel, .article .contact-panel { padding: 30px 22px; }
  .venue-map { grid-template-columns: 1fr; }
  .founder-photo { min-height: 460px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .floating-consultation { right: 10px; bottom: 10px; width: min(198px, calc(100vw - 20px)); min-height: 50px; font-size: 11px; }
}

/* Full Method structure, matching the English page while keeping safe copy. */
.method { padding: 54px 0 72px; background: var(--cream); }
.method-intro { position: relative; min-height: 300px; margin-bottom: 32px; padding: 34px 36px; overflow: hidden; background: linear-gradient(90deg, rgba(248,244,236,.98) 0%, rgba(248,244,236,.9) 32%, rgba(248,244,236,.48) 52%, rgba(248,244,236,.08) 72%), url("/core_background.webp") center/cover no-repeat; }
.method-intro::after { position: absolute; inset: auto 0 0; height: 34px; background: linear-gradient(180deg, transparent, rgba(248,244,236,.9) 72%, var(--cream)); content: ""; }
.method-copy { position: relative; z-index: 1; max-width: 610px; }
.method-intro h2 { max-width: 560px; margin: 0 0 18px; font-size: clamp(30px,3.5vw,44px); font-weight: 800; line-height: 1.12; letter-spacing: -.05em; }
html[lang="ja"] .method-intro h2 { font-size: clamp(28px,3vw,39px); line-height: 1.35; }
.method-tagline { max-width: 270px; margin: 20px 0 0; padding-top: 16px; border-top: 2px solid rgba(154,136,120,.72); color: var(--charcoal); font-size: 13px; }
.method-block { padding: 30px 0 18px; }
.method-block + .method-block { border-top: 1px solid rgba(154,136,120,.18); }
.subsection-title { margin: 0 0 12px; color: var(--taupe-deep); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.subsection-intro { max-width: 920px; margin: 0 0 30px; color: var(--charcoal); font-size: 15px; line-height: 1.72; }
.pyramid-row { display: grid; grid-template-columns: minmax(320px,.9fr) minmax(0,1.1fr); gap: 56px; align-items: center; margin-bottom: 54px; }
#method .pyramid { display: flex; max-width: 520px; flex-direction: column; align-items: center; gap: 10px; filter: none; }
#method .pyramid .p-layer { display: flex; min-height: 108px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(132,114,97,.16); border-radius: 4px; clip-path: polygon(8% 0,92% 0,100% 100%,0 100%); color: var(--ivory); text-align: center; }
#method .pyramid .p-layer strong { display: block; margin-bottom: 7px; font-size: 15px; letter-spacing: .04em; }
#method .pyramid .p-layer span { font-size: 12px; }
#method .pyramid .p1 { width: 58%; background: #c49a74; }
#method .pyramid .p2 { width: 80%; background: #9a8878; }
#method .pyramid .p3 { width: 100%; background: #5b4a3c; }
.p-list { position: relative; display: grid; gap: 14px; }
.p-list::before { position: absolute; top: 24px; bottom: 24px; left: 24px; border-left: 1px solid rgba(154,136,120,.22); content: ""; }
.p-list-item { position: relative; display: grid; min-height: 116px; grid-template-columns: 48px 54px minmax(0,1fr); gap: 14px; align-items: center; }
.p-num { position: relative; z-index: 1; display: grid; width: 40px; height: 40px; place-content: center; border: 1px solid rgba(154,136,120,.32); border-radius: 50%; background: var(--cream); color: var(--taupe-deep); box-shadow: 0 0 0 7px var(--cream); font-size: 12px; font-weight: 800; }
.p-li-ic { display: grid; width: 54px; height: 54px; place-content: center; border: 1px solid rgba(181,171,151,.28); border-radius: 50%; background: rgba(255,255,255,.9); color: var(--taupe-deep); font-size: 20px; }
.p-list-item > div { min-height: 106px; padding: 20px 22px; border: 1px solid rgba(181,171,151,.28); border-radius: 20px; background: rgba(255,255,255,.86); box-shadow: 0 14px 28px rgba(67,61,51,.06); }
.p-list-item strong { display: block; margin-bottom: 12px; font-size: 15px; font-weight: 800; letter-spacing: .06em; }
.p-list-item strong::after { display: block; width: 30px; height: 2px; margin-top: 9px; background: rgba(154,136,120,.6); content: ""; }
.p-list-item p { margin: 0; color: var(--charcoal); font-size: 13px; line-height: 1.65; }
.benefit-cards { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; margin-bottom: 36px; }
.benefit-card { min-height: 220px; padding: 24px 16px 20px; border: 1px solid rgba(181,171,151,.26); border-radius: 20px; background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(247,243,236,.92)); box-shadow: 0 14px 26px rgba(67,61,51,.05); text-align: center; }
.benefit-card .b-icon { display: grid; width: 58px; height: 58px; place-content: center; margin: 2px auto 14px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #fff, #f4f0e7); box-shadow: inset 0 0 0 1px rgba(181,171,151,.2); color: var(--taupe-deep); font-size: 12px; font-weight: 800; }
.benefit-card strong { display: block; margin-bottom: 10px; color: var(--taupe-deep); font-size: 13px; font-weight: 800; letter-spacing: .05em; }
.benefit-card strong::after { display: block; width: 30px; height: 2px; margin: 10px auto 0; background: rgba(154,136,120,.6); content: ""; }
.benefit-card p { max-width: 170px; margin: 0 auto; font-size: 13px; line-height: 1.65; }
.method-story { display: grid; gap: 24px; }
.method-story-intro, .method-story-outro { max-width: 920px; color: var(--charcoal); font-size: 15px; line-height: 1.78; }
.method-story-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.method-story-step { display: flex; min-height: 240px; flex-direction: column; padding: 20px 20px 22px; border: 1px solid rgba(181,171,151,.3); border-radius: 22px; background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(247,243,236,.92)); box-shadow: 0 16px 30px rgba(67,61,51,.06); }
.method-story-step .step-mark { display: grid; width: 48px; height: 48px; place-content: center; margin-bottom: 14px; border: 1px solid rgba(181,171,151,.34); border-radius: 50%; background: linear-gradient(180deg, #fff, #f2ece2); color: var(--taupe-deep); font-size: 11px; font-weight: 800; }
.method-story-step > strong { margin-bottom: 10px; color: #6b594b; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.method-story-step h4 { margin: 0 0 12px; font-size: 19px; font-weight: 800; line-height: 1.35; }
.method-story-step p { margin: 0; color: var(--charcoal); font-size: 13px; line-height: 1.7; }
.method-story-quote { padding: 24px 0; border-top: 1px solid rgba(181,171,151,.36); border-bottom: 1px solid rgba(181,171,151,.36); text-align: center; }
.method-story-quote p { max-width: 900px; margin: 0 auto; font-size: clamp(21px,2.2vw,29px); font-weight: 800; line-height: 1.35; letter-spacing: -.035em; }
.method-story-sign { margin-top: 12px; color: var(--taupe-deep); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

/* English pricing-card parity, including the original photographic surfaces. */
#plans { padding: 78px 0 54px; background: #fff; }
.pricing-head { max-width: 980px; margin: 0 auto 24px; padding: 52px 32px 44px; overflow: hidden; border-radius: 22px; background: linear-gradient(180deg, rgba(248,244,236,.84), rgba(248,244,236,.9)), url("/headline_background.webp") center/cover no-repeat; text-align: center; }
.pricing-head h2 { margin: 0; font-size: clamp(34px,4.2vw,52px); font-weight: 800; line-height: 1.08; letter-spacing: -.05em; }
html[lang="ja"] .pricing-head h2 { font-size: clamp(30px,3.4vw,44px); line-height: 1.3; }
.pricing-head .rec-sub { max-width: 760px; margin: 14px auto 0; color: var(--sage-bright); font-size: 17px; font-style: italic; line-height: 1.5; }
.pricing-kicker { max-width: 720px; margin: 16px auto 0; font-size: 14px; line-height: 1.7; }
.pricing-mini { margin: 8px auto 0; color: var(--sage); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.why-unlimited { margin-bottom: 40px; padding: 8px 0 2px; text-align: center; }
.why-unlimited h4 { max-width: 700px; margin: 0 auto 24px; font-size: 16px; font-weight: 400; line-height: 1.55; }
.why-unlimited h4::after { display: block; width: 48px; height: 1px; margin: 16px auto 0; background: rgba(154,136,120,.58); content: ""; }
.wu-track { display: grid; max-width: 1040px; grid-template-columns: 88px minmax(0,1fr) 88px; gap: 12px; align-items: start; margin: 0 auto 16px; }
.wu-side { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--taupe-deep); }
.wu-side .label { font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.wu-side.start .label { font-size: 19px; }
.wu-side.end .dot::before { color: var(--sage-bright); content: "∞"; font-size: 48px; line-height: 1; }
.wu-cols { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.wu-cols::before { position: absolute; right: -4%; left: -4%; top: 31px; height: 1px; background: rgba(181,171,151,.45); content: ""; }
.wu-cols > div { position: relative; z-index: 1; }
.wu-cols > div::before { display: block; width: 58px; height: 58px; margin: 0 auto 12px; border: 1px solid rgba(181,171,151,.26); border-radius: 50%; background: #f8f4ec; box-shadow: 0 10px 20px rgba(67,61,51,.05); content: ""; }
.wu-cols strong { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.wu-cols p { max-width: 180px; margin: 0 auto; color: var(--charcoal); font-size: 12px; line-height: 1.6; }
#plans .plans { gap: 14px; }
.plan-card { position: relative; isolation: isolate; display: flex; min-height: 540px; flex-direction: column; align-items: center; justify-content: center; padding: 110px 24px 106px; overflow: hidden; border: 1px solid rgba(181,171,151,.24); border-radius: 14px; background-color: #e8e1d6; background-position: center; background-size: cover; box-shadow: 0 12px 30px rgba(67,61,51,.09); }
.plan-card.base { background-image: url("/pricing-base-gym.webp"); background-position: 50% 46%; }
.plan-card.concierge { background-image: url("/pricing-concierge-home.webp"); background-position: 56% 50%; }
.plan-card.signature { background-image: url("/pricing-signature-gym-home.webp"); }
.plan-visual { position: absolute; z-index: 0; inset: 0; pointer-events: none; }
.plan-visual::before { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36,34,28,.12), rgba(36,34,28,.04) 18%, transparent 38%, rgba(250,248,242,.48) 62%, rgba(250,248,242,.82) 80%), radial-gradient(ellipse at 50% 60%, rgba(255,250,244,.76), rgba(255,250,244,.54) 22%, rgba(255,250,244,.18) 42%, transparent 64%); content: ""; }
.plan-card::before { position: absolute; z-index: 3; top: 14px; left: 14px; display: grid; width: 58px; height: 58px; place-content: center; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #fff, #f6f2ea); box-shadow: 0 10px 22px rgba(67,61,51,.09); color: #5f6e5b; content: "●"; font-size: 12px; }
.plan-card.concierge::before { content: "⌂"; font-size: 22px; }
.plan-card.signature::before { content: "◆"; font-size: 17px; }
.plan-note, .plan-badge { position: absolute; z-index: 3; top: 14px; right: 14px; padding: 7px 12px; border-radius: 999px; background: var(--taupe-deep); color: var(--ivory); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.plan-copy { position: relative; z-index: 2; display: flex; width: min(100%,290px); flex-direction: column; align-items: center; padding: 22px 20px 24px; border-radius: 24px; background: linear-gradient(180deg, rgba(250,248,242,.78), rgba(250,248,242,.62)); box-shadow: 0 10px 24px rgba(67,61,51,.06); backdrop-filter: blur(3px); text-align: center; }
.plan-name { margin: 0 0 8px; font-size: 17px; font-weight: 800; letter-spacing: .1em; }
.plan-tag { margin: 0 0 18px; font-size: 17px; line-height: 1.35; }
.plan-tag::after { display: block; width: 34px; height: 1px; margin: 14px auto 0; background: rgba(154,136,120,.52); content: ""; }
.plan-desc { max-width: 250px; margin: 0 0 16px; color: #3f473b; font-size: 12.5px; line-height: 1.6; }
.plan-list { display: flex; width: min(100%,250px); flex-direction: column; gap: 12px; margin: 0 auto; padding: 0; list-style: none; text-align: left; }
.plan-list li { position: relative; padding-left: 25px; font-size: 13px; line-height: 1.5; }
.plan-list li::before { position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(132,114,97,.35); content: ""; }
.plan-micro { max-width: 250px; margin: 16px auto 0; color: #495345; font-size: 11.5px; line-height: 1.55; }
.plan-price { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; margin: 0; padding: 12px 18px 16px; background: var(--taupe-deep); color: rgba(252,248,241,.86); font-size: 12px; line-height: 1.2; }
.plan-price b { display: block; margin-top: 4px; color: var(--ivory); font-size: 31px; line-height: 1; }
.plan-book { position: absolute; z-index: 6; right: 16px; bottom: 16px; display: inline-flex; min-width: 102px; height: 40px; align-items: center; justify-content: center; padding: 0 16px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(255,255,255,.08); color: var(--ivory); cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; }
.plans-note { margin-top: 18px; color: var(--muted); font-size: 12px; text-align: center; }
.pricing-details { max-width: 920px; margin: 40px auto 0; border-top: 1px solid var(--border); }
.pricing-details details { border-bottom: 1px solid var(--border); }
.pricing-details summary { cursor: pointer; padding: 18px 4px; font-size: 14px; font-weight: 700; }
.pricing-details details p { max-width: 760px; color: var(--charcoal); font-size: 13px; line-height: 1.75; }

/* Dark sections anchor the page; brown is reserved for primary emphasis. */
.future-self { background: var(--ink); }
.future-self .contact-panel, #contact .contact-panel { border-color: rgba(255,255,255,.1); background: var(--ink); box-shadow: none; color: var(--ivory); }
.future-self .contact-panel > p:not(.eyebrow), #contact .contact-panel > p:not(.eyebrow), #contact .step { color: #d8cec4; }
.future-self .contact-panel .eyebrow, #contact .contact-panel .eyebrow { color: var(--gold); }
.future-self .contact-panel .button.primary, #contact .contact-panel .button.primary { background: linear-gradient(180deg, #c8956e, #ad7a5c); }

/* Closing consultation card: text + step-badges on the left, tagline + CTA on the right. */
#contact .contact-panel { padding: 0; overflow: hidden; }
.consult-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; }
.consult-main { padding: 50px 56px; }
.consult-main .eyebrow { margin-bottom: 16px; }
.consult-main .eyebrow::before { content: "[ "; }
.consult-main .eyebrow::after { content: " ]"; }
.consult-main h2 { max-width: 640px; margin-bottom: 34px; font-weight: 800; letter-spacing: -.01em; }
html[lang="ja"] .consult-main h2 { font-size: clamp(24px,2.6vw,32px); line-height: 1.45; }
.consult-steps { display: flex; gap: 0; }
.consult-step { flex: 1; padding-right: 20px; }
.consult-step-top { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.consult-step-icon { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(200,149,110,.55); border-radius: 50%; color: var(--gold); }
.consult-step-icon svg { width: 19px; height: 19px; }
.consult-step-num { flex: 0 0 auto; color: rgba(200,149,110,.9); font-size: 12px; font-weight: 700; }
.consult-step-top::after { content: ""; flex: 1; height: 1px; margin-left: 4px; background: rgba(200,149,110,.32); }
.consult-step:last-child .consult-step-top::after { display: none; }
.consult-step strong { display: block; margin-bottom: 6px; font-size: 15px; }
.consult-step p { margin: 0; font-size: 12.5px; line-height: 1.6; color: #cbbfae; }
.consult-side { display: flex; flex-direction: column; justify-content: center; gap: 20px; padding: 50px 34px; border-left: 1px solid rgba(255,255,255,.14); }
.consult-side p { margin: 0; font-size: 14px; line-height: 1.65; }
.consult-cta { justify-content: center; width: 100%; }
@media (max-width: 860px) {
  .consult-grid { grid-template-columns: 1fr; }
  .consult-main { padding: 34px 22px; }
  .consult-steps { flex-direction: column; gap: 22px; }
  .consult-step-top::after { display: none; }
  .consult-side { padding: 30px 22px; border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
}
#services .service-card:nth-child(2) { border-color: rgba(139,119,102,.5); background: linear-gradient(160deg, #a98b70, #7f6958); color: var(--ivory); }
#services .service-card:nth-child(2) p, #services .service-card:nth-child(2) .text-link { color: #f4ece3; }
#services .service-card:nth-child(2) .button.primary { border-color: var(--ivory); background: var(--ivory); color: var(--ink); }

@media (max-width: 960px) {
  .pyramid-row { grid-template-columns: 1fr; }
  #method .pyramid { max-width: 620px; margin: 0 auto; }
  .benefit-cards { grid-template-columns: repeat(2,1fr); }
  .method-story-grid { grid-template-columns: 1fr; }
  .wu-track { grid-template-columns: 1fr; }
  .wu-side { display: none; }
  .wu-cols::before { display: none; }
}
@media (max-width: 800px) {
  #plans .plans { grid-template-columns: 1fr; }
  .plan-card { min-height: 570px; }
}
@media (max-width: 640px) {
  .method-intro { min-height: 360px; padding: 26px 18px 22px; background: linear-gradient(180deg, rgba(248,244,236,.94), rgba(248,244,236,.76)), url("/core_background.webp") 66% center/cover no-repeat; }
  .pyramid-row { gap: 32px; }
  .p-list-item { grid-template-columns: 40px minmax(0,1fr); }
  .p-li-ic { display: none; }
  .benefit-cards, .wu-cols { grid-template-columns: 1fr; }
  .method-story-step { min-height: auto; }
  .pricing-head { padding: 34px 20px 28px; }
}

/* Keep the Japanese pricing logic visually identical to the live English flow. */
#pricing .wu-track { grid-template-columns: 88px minmax(0,1fr) 88px; gap: 20px; align-items: start; }
#pricing .wu-side { display: flex; padding-top: 18px; }
#pricing .wu-side .dot { width: 14px; height: 14px; border: 1px solid rgba(184,139,99,.45); border-radius: 50%; background: #fff; box-shadow: 0 0 0 5px rgba(184,139,99,.06); }
#pricing .wu-side.start { align-items: flex-start; padding-top: 14px; text-align: left; }
#pricing .wu-side.start .label { margin-top: 24px; color: #536156; font-size: 27px; font-weight: 800; letter-spacing: .08em; }
#pricing .wu-side.start .label::after { margin-left: 10px; color: #9d8878; content: ">"; }
#pricing .wu-side.end { align-items: center; padding-top: 8px; }
#pricing .wu-side.end .dot { display: block; width: auto; height: auto; border: 0; background: transparent; box-shadow: none; }
#pricing .wu-side.end .dot::before { color: var(--accent); content: "\221e"; font-family: Georgia,serif; font-size: 70px; font-weight: 400; line-height: .75; }
#pricing .wu-side.end .label { margin-top: 25px; color: var(--accent); font-size: 20px; font-weight: 800; letter-spacing: .09em; }
#pricing .wu-cols { gap: 22px; padding-top: 4px; }
#pricing .wu-cols::before { display: block; top: 34px; right: -12px; left: -12px; background: rgba(184,139,99,.34); }
#pricing .wu-cols > div::before { position: relative; z-index: 1; width: 58px; height: 58px; margin: 0 auto 13px; border: 1px solid rgba(150,122,98,.18); border-radius: 50%; background-color: #faf7f1; background-position: center; background-repeat: no-repeat; background-size: 21px 21px; box-shadow: 0 10px 24px rgba(58,45,34,.05); }
#pricing .wu-cols > div:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Crect x='4' y='5.5' width='16' height='14' rx='2'/%3E%3Cpath d='M8 3v5M16 3v5M4 10h16M8 13h3M8 16h5'/%3E%3C/svg%3E"); }
#pricing .wu-cols > div:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Ccircle cx='12' cy='7' r='3'/%3E%3Cpath d='M5 20c.8-4.2 3.1-6.3 7-6.3s6.2 2.1 7 6.3'/%3E%3C/svg%3E"); }
#pricing .wu-cols > div:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Cpath d='M5 7h14M5 12h14M5 17h14'/%3E%3Ccircle cx='9' cy='7' r='2' fill='%23faf7f1'/%3E%3Ccircle cx='15' cy='12' r='2' fill='%23faf7f1'/%3E%3Ccircle cx='11' cy='17' r='2' fill='%23faf7f1'/%3E%3C/svg%3E"); }
#pricing .wu-cols h3 { margin-bottom: 8px; font-size: 14px; letter-spacing: .07em; }
#pricing .wu-cols p { max-width: 210px; margin: 0 auto; font-size: 12px; line-height: 1.55; }

@media (max-width: 640px) {
  #pricing .wu-track { grid-template-columns: 1fr; gap: 18px; }
  #pricing .wu-side.start, #pricing .wu-side.end { align-items: center; padding: 0; text-align: center; }
  #pricing .wu-side.start .label, #pricing .wu-side.end .label { margin-top: 10px; }
  #pricing .wu-cols { grid-template-columns: 1fr; gap: 20px; }
  #pricing .wu-cols::before { display: none; }
}

/* Japanese typography, emphasis, restored icons, and closing CTA parity. */
.accent { color: var(--accent); font-style: italic; }
html[lang="ja"] .accent { color: var(--accent); font-style: normal; }

html[lang="ja"] .hero h1 {
  max-width: 560px;
  font-size: clamp(34px, 3.65vw, 49px);
  line-height: 1.24;
  letter-spacing: -.04em;
}

html[lang="ja"] .recognition .section-head h2 {
  max-width: 410px;
  font-size: clamp(28px, 2.7vw, 38px);
  line-height: 1.38;
}

html[lang="ja"] .recognition .section-head h2 .accent {
  display: block;
}

html[lang="ja"] .method-intro h2 {
  max-width: 520px;
  font-size: clamp(26px, 2.65vw, 35px);
  line-height: 1.48;
  letter-spacing: -.035em;
}

html[lang="ja"] #services .section-head h2,
html[lang="ja"] .venues .section-head h2,
html[lang="ja"] .faq .section-head h2 {
  font-size: clamp(27px, 2.8vw, 38px);
}

html[lang="ja"] #founder .section-head h2,
html[lang="ja"] .contact-panel h2 {
  font-size: clamp(28px, 2.9vw, 39px);
}

.benefit-card .b-icon svg,
.venue-icon svg,
.closing-step-icon svg,
.button-icon svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.6;
}

.benefit-card .b-icon {
  color: #5b6c5e;
}

.venue-node {
  align-content: center;
}

.venue-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  margin-bottom: 10px;
  border: 1px solid rgba(154,136,120,.2);
  border-radius: 50%;
  background: #faf7f1;
  color: #657363;
}

.venue-icon svg { width: 20px; height: 20px; }

.p-li-ic {
  color: transparent;
  background-color: rgba(255,255,255,.9);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 22px 22px;
  font-size: 0;
}

.p-list-item:nth-child(1) .p-li-ic {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Cpath d='m12 3 2 5 5 2-5 2-2 5-2-5-5-2 5-2 2-5Z'/%3E%3C/svg%3E");
}

.p-list-item:nth-child(2) .p-li-ic {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Cpath d='M4 15h4l2-6 4 9 2-5h4'/%3E%3C/svg%3E");
}

.p-list-item:nth-child(3) .p-li-ic {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Ccircle cx='12' cy='7' r='3'/%3E%3Cpath d='M6 21c.6-4.7 2.6-7 6-7s5.4 2.3 6 7'/%3E%3C/svg%3E");
}

.plan-card::before {
  content: "";
  background-position: center;
  background-repeat: no-repeat;
  background-size: 24px 24px;
}

.plan-card.base::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Cpath d='M3 9v6M6 7v10M18 7v10M21 9v6M6 12h12'/%3E%3C/svg%3E");
}

.plan-card.concierge::before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.6'%3E%3Cpath d='m3 11 9-8 9 8M5 10v10h14V10M9 20v-6h6v6'/%3E%3C/svg%3E");
}

.plan-card.signature::before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%235b6c5e' stroke-width='1.5'%3E%3Cpath d='M2 9v6M5 7v10M15 8l4-4 4 4M17 7v10h4V7M5 12h12'/%3E%3C/svg%3E");
}

#contact {
  padding: 72px 0 84px;
  background: linear-gradient(135deg, #f6efe6 0%, #fffdf9 72%);
}

.closing-cta {
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: 34px;
  align-items: start;
}

.closing-copy {
  padding: 14px 4px 0;
}

.closing-copy h2 {
  max-width: 480px;
  margin: 0 0 18px;
  font-size: clamp(34px, 3.8vw, 52px);
  font-weight: 800;
  letter-spacing: -.055em;
  line-height: 1.08;
}

html[lang="ja"] .closing-copy h2 {
  font-size: clamp(28px, 2.9vw, 39px);
  line-height: 1.42;
  letter-spacing: -.035em;
}

.closing-copy h2 .accent {
  display: block;
}

.closing-lead {
  max-width: 450px;
  margin: 0 0 22px;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.75;
}

.closing-button {
  width: min(100%, 400px);
  min-height: 64px;
  justify-content: flex-start;
  padding: 16px 22px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(180deg,#c8956e,#ad7a5c) !important;
  box-shadow: 0 16px 30px rgba(146,88,73,.18);
  font-size: 13px;
  font-weight: 700;
}

.button-icon {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.16);
}

.button-icon svg { width: 20px; height: 20px; }

.closing-languages {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.closing-languages strong {
  margin-right: 12px;
  color: var(--ink);
  font-size: 10px;
  letter-spacing: .12em;
}

.closing-steps {
  padding: 30px 28px 24px;
  border: 1px solid rgba(154,136,120,.22);
  border-radius: 24px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 18px 44px rgba(57,54,43,.09);
}

.closing-steps-title {
  margin: 0 0 18px;
  color: var(--taupe-deep);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.closing-step {
  display: grid;
  min-height: 92px;
  grid-template-columns: 54px minmax(0,1fr);
  gap: 17px;
  align-items: center;
  padding: 13px 4px;
  border-bottom: 1px solid rgba(154,136,120,.16);
}

.closing-step-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid rgba(154,136,120,.18);
  border-radius: 50%;
  background: #faf7f1;
  color: #5b6c5e;
}

.closing-step strong {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
}

.closing-step p {
  margin: 0;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.55;
}

.closing-submit {
  width: 100%;
  min-height: 52px;
  margin-top: 22px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg,#c8956e,#ad7a5c) !important;
  box-shadow: 0 14px 28px rgba(146,88,73,.16);
}

.closing-safe {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}

@media (max-width: 960px) {
  .closing-cta { grid-template-columns: 1fr; }
  .closing-copy { padding-top: 0; }
  .closing-copy h2, .closing-lead { max-width: 680px; }
}

@media (max-width: 640px) {
  html[lang="ja"] .hero h1 { font-size: clamp(30px, 8.7vw, 39px); line-height: 1.35; }
  html[lang="ja"] .recognition .section-head h2 { font-size: 29px; }
  html[lang="ja"] .method-intro h2 { font-size: 27px; line-height: 1.5; }
  .venue-icon { width: 38px; height: 38px; }
  #contact { padding: 56px 0 64px; }
  html[lang="ja"] .closing-copy h2 { font-size: 29px; }
  .closing-button { width: 100%; }
  .closing-steps { padding: 24px 18px 20px; }
}

/* Use the live English page's exact icon drawings and founder image treatment. */
.p-li-ic {
  color: var(--taupe-deep);
  background-image: none !important;
  font-size: initial;
}

.p-li-ic svg {
  width: 24px;
  height: 24px;
}

.method-story-step .step-mark svg {
  width: 23px;
  height: 23px;
}

.benefit-card .b-icon svg {
  width: 28px;
  height: 28px;
}

#pricing .wu-cols > div::before {
  width: 62px;
  height: 62px;
  background-size: 28px 28px;
}

#pricing .wu-cols::before {
  top: 35px;
}

#pricing .wu-cols > div:nth-child(1)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6e5b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v3M17 3v3M4 8h16'/%3E%3Crect x='4' y='5' width='16' height='15' rx='2'/%3E%3Cpath d='M8 12h4M8 15h6'/%3E%3C/svg%3E");
}

#pricing .wu-cols > div:nth-child(2)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6e5b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.4'/%3E%3Cpath d='M5.4 19.5c1.9-3.1 4.1-4.7 6.6-4.7s4.7 1.6 6.6 4.7'/%3E%3C/svg%3E");
}

#pricing .wu-cols > div:nth-child(3)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6e5b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8h12M8 12h8M10 16h4'/%3E%3Ccircle cx='7' cy='8' r='1.4'/%3E%3Ccircle cx='17' cy='12' r='1.4'/%3E%3Ccircle cx='9' cy='16' r='1.4'/%3E%3C/svg%3E");
}

.plan-card::before {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6e5b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10v4M6 8v8M18 8v8M21 10v4'/%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") no-repeat center/25px 25px,
    radial-gradient(circle at 30% 30%,rgba(255,255,255,.98),rgba(246,242,234,.92));
}

.plan-card.concierge::before {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6e5b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E") no-repeat center/25px 25px,
    radial-gradient(circle at 30% 30%,rgba(255,255,255,.98),rgba(246,242,234,.92));
}

.plan-card.signature::before {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 24' fill='none' stroke='%235f6e5b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10v4M6 8v8M18 8v8M21 10v4'/%3E%3Cpath d='M6 12h12'/%3E%3Cpath d='M23 11l9-8 9 8'/%3E%3Cpath d='M25 10v10h14V10'/%3E%3C/svg%3E") no-repeat center/30px 18px,
    radial-gradient(circle at 30% 30%,rgba(255,255,255,.98),rgba(246,242,234,.92));
}

#founder {
  padding: 28px 0 56px;
  background: var(--cream);
}

#founder .wrap {
  max-width: var(--max);
  padding: 0 24px;
}

.founder-story-v2 {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

.founder-story-v2-hero {
  display: grid;
  grid-template-columns: minmax(280px,360px) minmax(0,1fr);
  gap: 42px;
  align-items: stretch;
}

.founder-story-v2-portrait {
  width: 88%;
  aspect-ratio: .72/1;
  margin: 0;
  overflow: hidden;
  justify-self: start;
  background: #d7d0c7;
}

.founder-story-v2-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  filter: saturate(.92) contrast(1.01) brightness(1.02);
}

.founder-story-v2-top {
  padding: 44px 34px 34px 0;
}

.founder-story-v2-kicker {
  margin: 0 0 20px;
  color: var(--sage);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
}

.founder-story-v2-rule {
  width: 44px;
  height: 2px;
  margin: 0 0 30px;
  background: rgba(154,136,120,.72);
}

.founder-story-v2-title {
  max-width: 720px;
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(30px,3.1vw,43px);
  font-weight: 800;
  line-height: 1.36;
  letter-spacing: -.045em;
}

.founder-story-v2-copy {
  margin-top: 28px;
  padding-top: 26px;
  border-top: 1px solid rgba(154,136,120,.16);
}

.founder-story-v2-copy p {
  margin: 0 0 18px;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.85;
}

.founder-story-v2-body {
  width: 100%;
  margin-top: 38px;
}

.founder-story-v2-signoff {
  padding: 32px 0 0;
  border-top: 1px solid rgba(154,136,120,.16);
}

.founder-story-v2-signoff h3 {
  margin: 0 0 18px;
  font-size: clamp(18px,1.7vw,24px);
  font-weight: 800;
  letter-spacing: -.03em;
}

.founder-story-v2-signoff .sigline {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--sage);
  font-size: 15px;
}

.founder-story-v2-signoff .sigline::before {
  width: 28px;
  height: 2px;
  flex: 0 0 auto;
  background: rgba(154,136,120,.72);
  content: "";
}

.trust {
  padding: 56px 0;
  background: #fff;
}

.trust-head {
  width: 100%;
  max-width: none;
  margin: 0 0 34px;
  text-align: left;
}

.trust-head h2 {
  max-width: 780px;
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(30px,3.3vw,44px);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1.3;
}

.trust-cols {
  display: grid;
  grid-template-columns: repeat(3,1fr);
}

.trust-cols > div {
  padding: 0 22px;
  border-left: 1px solid rgba(154,136,120,.16);
  text-align: center;
}

.trust-cols > div:first-child { border-left: 0; }

.trust-cols .t-ic {
  width: 46px;
  height: 46px;
  margin: 0 auto 14px;
  color: var(--sage);
}

.trust-cols strong {
  display: block;
  margin-bottom: 10px;
  color: #475843;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.trust-cols p {
  max-width: 190px;
  margin: 0 auto;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.5;
}

@media (max-width: 960px) {
  .founder-story-v2-hero { grid-template-columns: 1fr; gap: 26px; }
  .founder-story-v2-portrait { width: 100%; max-width: 360px; }
  .founder-story-v2-top { padding: 4px 0 0; }
}

@media (max-width: 640px) {
  #founder .wrap { padding: 0 18px; }
  .founder-story-v2-portrait { max-width: none; }
  .founder-story-v2-title { font-size: 29px; }
  .trust-cols { grid-template-columns: 1fr; }
  .trust-cols > div { padding: 22px 0; border-top: 1px solid rgba(154,136,120,.16); border-left: 0; }
  .trust-cols > div:first-child { border-top: 0; }
}

/* Compact English-parity venue composition and provisional Pilates pricing. */
.hero .actions { margin-bottom: 0; }

.venues {
  min-height: 400px;
  padding: 56px 0;
  background:
    linear-gradient(90deg,rgba(246,242,234,.74),rgba(246,242,234,.58) 46%,rgba(246,242,234,.48)),
    url("/venues-background-park.webp") center/cover no-repeat;
}

.venues > .wrap {
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: 20px;
  align-items: center;
}

.venues .section-head {
  width: 100%;
  max-width: 405px;
  min-height: 240px;
  margin: 0;
  padding: 28px 24px;
  border: 1px solid rgba(181,171,151,.2);
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 14px 30px rgba(57,54,43,.06);
}

.venues .section-head .eyebrow { display: none; }

.venues .section-head h2 {
  max-width: 330px;
  margin: 0 0 20px;
  font-size: clamp(30px,3.2vw,44px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.045em;
}

html[lang="ja"] .venues .section-head h2 {
  max-width: 310px;
  font-size: clamp(28px,2.7vw,37px);
  line-height: 1.35;
}

.venues .section-head h2 .accent {
  display: inline;
  font-weight: 800;
}

.venues .section-head > p:last-child {
  margin: 0;
  font-size: 14px;
}

.venue-map {
  display: grid;
  min-height: 260px;
  grid-template-columns: repeat(2,minmax(0,250px));
  gap: 16px;
  align-content: center;
  justify-content: center;
}

.venue-node {
  display: flex;
  width: 100%;
  min-height: 112px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 16px 18px 14px;
  border: 1px solid rgba(181,171,151,.2);
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 26px rgba(57,54,43,.08);
  text-align: left;
}

.venue-node:nth-child(1) { order: 2; }
.venue-node:nth-child(2) { order: 1; }
.venue-node:nth-child(3) { order: 3; }
.venue-node:nth-child(4) { order: 4; }

.venue-icon,
.venue-node .n-badge {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  margin: 0 0 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--sage);
}

.venue-node .n-badge {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg,#9b8975,#65574b);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.venue-icon svg { width: 28px; height: 28px; }
.venue-node strong { margin-bottom: 3px; font-size: 13px; }
.venue-node > span:last-child { color: var(--ink); font-size: 11px; }

.pilates-pricing {
  max-width: 100%;
  margin: 48px auto 0;
  padding-top: 36px;
  border: 0;
  border-top: 1px solid rgba(154,136,120,.24);
  border-radius: 0;
  background: #fff;
}

.pilates-pricing-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 0 4px 22px;
}

.pilates-pricing-head span {
  color: var(--taupe-deep);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
}

.pilates-pricing-head strong {
  font-size: 24px;
}

.pilates-pricing-head small {
  padding: 6px 10px;
  border-radius: 999px;
  background: #8b7766;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
}

.pilates-price-intro {
  padding: 18px 4px 0;
  border-top: 1px solid rgba(154,136,120,.14);
}

.pilates-price-intro p {
  max-width: 760px;
  margin: 0;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.7;
}

.pilates-plans {
  padding: 22px 20px 20px;
}

.pilates-plans .plan-card {
  min-height: 510px;
}

.plan-note.provisional,
.plan-badge.provisional {
  background: #6e5848;
}

@media (max-width: 960px) {
  .venues > .wrap { grid-template-columns: 1fr; }
  .venues .section-head { max-width: none; min-height: auto; }
  .venue-map { width: 100%; }
}

@media (max-width: 640px) {
  .venues { min-height: 0; padding: 42px 0; }
  .venue-map { min-height: 0; grid-template-columns: 1fr; }
  .venue-node { min-height: 102px; }
  .pilates-pricing-head { grid-template-columns: 1fr; gap: 8px; padding-right: 0; padding-left: 0; }
  .pilates-pricing-head small { justify-self: start; }
  .pilates-plans { padding: 18px 12px 12px; }
}

/* Service landing pages: deeper answers without duplicating the main landing page. */
body[data-page-type="service"] main > section:not(.hero) {
  padding-top: 72px;
  padding-bottom: 72px;
}

body[data-page-type="service"][data-service-interest="personal-training"] .hero-art {
  background:
    linear-gradient(90deg,rgba(255,249,240,.7),rgba(255,249,240,.12) 32%,transparent 54%),
    url("/pricing-base-gym.webp") center/cover no-repeat;
}

body[data-page-type="service"][data-service-interest="pilates"] .hero-art {
  background:
    linear-gradient(90deg,rgba(255,249,240,.76),rgba(255,249,240,.16) 38%,transparent 62%),
    url("/pilates-stock-standing.webp") center/cover no-repeat;
}

.service-detail {
  background: var(--cream);
}

.service-detail > .wrap {
  display: grid;
  grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
  gap: 48px;
  align-items: start;
}

.service-detail-head {
  position: sticky;
  top: 104px;
}

.service-detail-head h2 {
  max-width: 520px;
  margin-bottom: 22px;
  font-size: clamp(30px,3.4vw,45px);
  font-weight: 800;
  line-height: 1.28;
  letter-spacing: -.045em;
}

.service-detail-head p:last-child {
  max-width: 540px;
  margin: 0;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.85;
}

.service-feature-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
}

.service-feature-grid article {
  min-height: 220px;
  padding: 26px 24px;
  border: 1px solid rgba(154,136,120,.2);
  border-radius: 20px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 12px 28px rgba(57,54,43,.05);
}

.service-feature-grid article > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  margin-bottom: 24px;
  border: 1px solid rgba(154,136,120,.28);
  border-radius: 50%;
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
}

.service-feature-grid h3 {
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 800;
}

.service-feature-grid p {
  margin: 0;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.7;
}

.service-process {
  background: #fff;
}

.service-process .section-head {
  max-width: none;
  margin-bottom: 34px;
  padding: 78px 36px 34px;
  border-radius: 20px;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(248,244,236,.98) 0%, rgba(248,244,236,.9) 32%, rgba(248,244,236,.48) 52%, rgba(248,244,236,.08) 72%), url("/core_background.webp") center/cover no-repeat;
}
@media (max-width: 640px) {
  .service-process .section-head { padding: 26px 18px 22px; background: linear-gradient(180deg, rgba(248,244,236,.94), rgba(248,244,236,.76)), url("/core_background.webp") 66% center/cover no-repeat; }
}

.service-process-list {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(154,136,120,.24);
  border-bottom: 1px solid rgba(154,136,120,.24);
  list-style: none;
}

.service-process-list li {
  min-height: 220px;
  padding: 26px 22px;
  border-left: 1px solid rgba(154,136,120,.18);
}

.service-process-list li:first-child { border-left: 0; }

.process-number {
  display: block;
  margin-bottom: 34px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
}

.service-process-list h3 {
  margin-bottom: 10px;
  font-size: 16px;
  font-weight: 800;
}

.service-process-list p {
  margin: 0;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.7;
}

.service-choice-guide {
  background: var(--cream);
}

.choice-check-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
}

.choice-check-grid > div {
  position: relative;
  min-height: 150px;
  padding: 24px 24px 22px 64px;
  border: 1px solid rgba(154,136,120,.2);
  border-radius: 18px;
  background: rgba(255,255,255,.8);
}

.choice-check-grid > div::before {
  position: absolute;
  top: 25px;
  left: 24px;
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: #5b6c5e;
  color: #fff;
  content: "✓";
  font-size: 12px;
}

.choice-check-grid strong {
  display: block;
  margin-bottom: 8px;
  font-size: 15px;
}

.choice-check-grid p {
  margin: 0;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.65;
}

.service-comparison {
  background: var(--cream);
}

.comparison-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
}

.comparison-grid article {
  display: flex;
  min-height: 330px;
  flex-direction: column;
  padding: 30px 28px;
  border: 1px solid rgba(154,136,120,.22);
  border-radius: 22px;
  background: rgba(255,255,255,.88);
}

.comparison-grid article:first-child {
  border-color: rgba(139,119,102,.48);
  background: linear-gradient(145deg,#a98b70,#796454);
  color: #fff;
}

.comparison-grid article:first-child p,
.comparison-grid article:first-child li { color: #f4ece3; }

.comparison-grid .comparison-undecided {
  display: grid;
  min-height: 190px;
  grid-column: 1 / -1;
  grid-template-columns: minmax(230px,.8fr) minmax(320px,1.25fr) minmax(250px,auto);
  gap: 28px;
  align-items: center;
}

.comparison-undecided-heading .comparison-label { margin-bottom: 10px; }

.comparison-undecided-heading h3 {
  max-width: 310px;
  margin: 0;
}

.comparison-undecided-copy {
  margin: 0;
  color: var(--charcoal);
  font-size: 14px;
  line-height: 1.8;
}

.comparison-grid .comparison-undecided .button {
  width: auto;
  min-width: 250px;
  margin: 0;
  align-self: center;
  white-space: nowrap;
}

.comparison-label {
  margin: 0 0 18px;
  color: var(--taupe-deep);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
}

.comparison-grid h3 {
  margin-bottom: 16px;
  font-size: 21px;
  font-weight: 800;
}

.comparison-grid ul {
  margin: 0 0 26px;
  padding-left: 20px;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.8;
}

.comparison-grid .button,
.comparison-link { margin-top: auto; align-self: flex-start; }

.service-coach {
  background: #fff;
}

.service-coach-grid {
  display: grid;
  grid-template-columns: minmax(260px,360px) minmax(0,1fr);
  gap: 48px;
  align-items: center;
}

.service-coach-photo {
  min-height: 470px;
  background: url("/foundation_photo.webp") center 28%/cover no-repeat;
}

.service-coach-grid h2 {
  max-width: 680px;
  margin-bottom: 22px;
  font-size: clamp(29px,3.2vw,43px);
  font-weight: 800;
  line-height: 1.35;
}

.service-coach-grid p {
  max-width: 700px;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.85;
}

@media (max-width: 960px) {
  .service-detail > .wrap,
  .service-coach-grid { grid-template-columns: 1fr; }
  .service-detail-head { position: static; }
  .service-process-list { grid-template-columns: repeat(2,1fr); }
  .service-process-list li:nth-child(3) { border-left: 0; border-top: 1px solid rgba(154,136,120,.18); }
  .service-process-list li:nth-child(4) { border-top: 1px solid rgba(154,136,120,.18); }
  .service-coach-photo { max-width: 360px; }
  .comparison-grid .comparison-undecided {
    grid-template-columns: minmax(220px,.8fr) minmax(0,1.2fr);
  }
  .comparison-grid .comparison-undecided .button {
    width: 100%;
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  body[data-page-type="service"] main > section:not(.hero) { padding-top: 54px; padding-bottom: 54px; }
  .service-feature-grid,
  .choice-check-grid,
  .comparison-grid,
  .service-process-list { grid-template-columns: 1fr; }
  .service-feature-grid article { min-height: 0; }
  .service-process-list li { min-height: 0; border-top: 1px solid rgba(154,136,120,.18); border-left: 0; }
  .service-process-list li:first-child { border-top: 0; }
  .comparison-grid .comparison-undecided { grid-column: auto; grid-template-columns: 1fr; }
  .comparison-grid .comparison-undecided .button { min-width: 0; grid-column: auto; white-space: normal; }
  .comparison-grid article { min-height: 0; }
  .service-coach-photo { min-height: 430px; max-width: none; }
}

/* Blog index and article reading system: compact, predictable, and editorial. */
body[data-page-type="blog-index"] .breadcrumbs,
body[data-page-type="article"] .breadcrumbs {
  padding-top: 24px;
}

.journal-hero {
  padding: 64px 0 62px;
  border-bottom: 1px solid rgba(154,136,120,.18);
  background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(246,239,230,.58));
}

.journal-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr);
  gap: 76px;
  align-items: end;
}

.journal-hero h1 {
  max-width: 690px;
  font-size: clamp(34px,4.2vw,54px);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1.3;
  text-wrap: balance;
}

.journal-hero h1 span { color: var(--accent); }

.journal-intro {
  max-width: 34rem;
  margin: 0 0 3px;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.9;
}

.journal-feed { padding: 64px 0 80px; }

.journal-feed-head {
  display: grid;
  grid-template-columns: 170px minmax(0,1fr);
  gap: 24px;
  align-items: baseline;
  margin-bottom: 18px;
}

.journal-feed-head h2 {
  font-size: clamp(25px,2.6vw,34px);
  font-weight: 800;
  line-height: 1.4;
}

.article-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(154,136,120,.28);
  list-style: none;
}

.article-list > li { border-bottom: 1px solid rgba(154,136,120,.28); }

.article-row {
  display: grid;
  grid-template-columns: minmax(240px,340px) minmax(0,1fr);
  gap: clamp(28px,4vw,58px);
  align-items: center;
  padding: 34px 0;
}

.article-row-media {
  min-height: 210px;
  overflow: hidden;
  background-position: center;
  background-size: cover;
  text-decoration: none;
}

.article-row-media-pilates {
  background-image: linear-gradient(90deg, rgba(246,239,230,.16), rgba(24,21,18,.03)), url("/pilates-stock-floor.webp");
}

.article-row-media-condo {
  background-image: linear-gradient(90deg, rgba(246,239,230,.08), rgba(24,21,18,.08)), url("/pricing-concierge-home.webp");
}

.article-row-copy { max-width: 650px; }

.article-row-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.draft-label {
  padding: 3px 8px;
  border: 1px solid rgba(184,139,98,.5);
  color: var(--taupe-deep);
}

.article-row h3 {
  max-width: 720px;
  margin: 0 0 12px;
  font-size: clamp(24px,2.7vw,34px);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.45;
}

.article-row h3 a { text-decoration: none; }
.article-row h3 a:hover { color: var(--accent); }

.article-row-copy > p {
  max-width: 42rem;
  margin: 0 0 14px;
  color: var(--charcoal);
  font-size: 14px;
  line-height: 1.8;
}

.article-read-link {
  color: var(--taupe-deep);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.article-read-link:hover { text-decoration: underline; }

body[data-page-type="blog-index"] main > section:last-child { padding: 0 0 76px; }
body[data-page-type="blog-index"] .contact-panel h2 { font-size: clamp(27px,3.2vw,40px); }

body[data-page-type="article"] .article {
  max-width: 46rem;
  padding-bottom: 72px;
}

body[data-page-type="article"] .article > section { padding: 26px 0; }
body[data-page-type="article"] .article > section:first-child { padding-top: 48px; }

html[lang="ja"] body[data-page-type="article"] .article h1 {
  max-width: 44rem;
  margin: 14px 0 18px;
  font-size: clamp(30px,3.8vw,44px);
  line-height: 1.42;
  letter-spacing: -.035em;
  text-wrap: balance;
}

html[lang="ja"] body[data-page-type="article"] .article h2 {
  margin: 44px 0 14px;
  font-size: clamp(22px,2.4vw,29px);
  line-height: 1.5;
}

body[data-page-type="article"] .article p,
body[data-page-type="article"] .article li {
  max-width: 44rem;
  font-size: 16px;
  line-height: 1.95;
}

body[data-page-type="article"] .article ul { padding-left: 1.4em; }
body[data-page-type="article"] .article li + li { margin-top: 8px; }

body[data-page-type="article"] .answer-box {
  margin: 30px 0;
  padding: 22px 0 22px 24px;
  border: 0;
  border-left: 4px solid var(--accent);
  border-radius: 0;
  background: transparent;
}

body[data-page-type="article"] .author-box {
  margin: 18px 0;
  padding: 26px 28px;
  border: 0;
  border-radius: 0;
  background: var(--cream);
}

body[data-page-type="article"] .summary-graphic { margin: 30px 0; }

/* Visible service pricing and durable inline icons. */
#plans,
body[data-page-type="service"] #plans,
.why-unlimited,
.service-pricing-section { background: #fff; }

#plans .wu-cols > div::before { display: none; }

.wu-icon {
  position: relative;
  z-index: 1;
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  margin: 0 auto 13px;
  border: 1px solid rgba(150,122,98,.22);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 24px rgba(58,45,34,.06);
  color: #5f6e5b;
}

.wu-icon svg { width: 28px; height: 28px; }

.pricing-service-title {
  margin: 0 0 20px;
  padding-top: 8px;
  text-align: center;
}

.pricing-service-title h3 {
  margin: 0 0 6px;
  font-size: clamp(24px,2.8vw,34px);
  font-weight: 800;
  line-height: 1.35;
}

.pricing-service-title p:last-child {
  margin: 0;
  color: var(--charcoal);
  font-size: 13px;
}

.pilates-pricing { padding: 36px 0 0; }

.service-pricing-section .pilates-plans { padding: 0; }

.provisional-price-note {
  max-width: 850px;
  margin: 22px auto 0;
  padding: 16px 20px;
  border-left: 3px solid var(--accent);
  background: var(--cream);
  color: var(--charcoal);
  font-size: 12px;
  line-height: 1.75;
}

/* Pilates education: introduce the Pyramid, then answer what Pilates is. */
.service-method-intro {
  padding: 64px 0;
  background: #fff;
}

.service-method-grid {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr);
  gap: clamp(46px,7vw,94px);
  align-items: center;
}

.service-method-grid h2 {
  max-width: 590px;
  margin-bottom: 22px;
  font-size: clamp(31px,3.6vw,48px);
  font-weight: 800;
  line-height: 1.35;
}

.service-method-grid > div:first-child > p:not(.eyebrow) {
  max-width: 590px;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.9;
}

.service-pyramid { gap: 10px; }

.service-pyramid div {
  display: grid;
  gap: 4px;
  padding: 20px 24px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  box-shadow: 0 12px 24px rgba(46,39,33,.08);
}

.service-pyramid strong { font-size: 15px; }
.service-pyramid span { color: rgba(255,255,255,.78); font-size: 11px; }
.service-pyramid .top { width: 58%; background: #9b826d; }
.service-pyramid .middle { width: 78%; background: #796858; }
.service-pyramid .base { width: 100%; background: #4f463f; }

.pyramid-note {
  max-width: 430px;
  margin: 14px auto 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
}

.pilates-explainer {
  padding: 72px 0 78px;
  background: var(--cream);
}

.pilates-explainer-lead {
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(360px,1.05fr);
  column-gap: clamp(44px,7vw,96px);
  align-items: end;
  margin-bottom: 44px;
}

.pilates-explainer-lead .eyebrow { grid-column: 1 / -1; }

.pilates-explainer-lead h2 {
  max-width: 610px;
  font-size: clamp(32px,3.8vw,50px);
  font-weight: 800;
  line-height: 1.35;
}

.pilates-explainer-lead > p:last-child {
  max-width: 570px;
  margin: 0 auto;
  padding: 26px 28px;
  border: 1px solid var(--border);
  border-radius: 16px;
  color: var(--charcoal);
  font-size: 15px;
  line-height: 1.9;
  text-align: center;
}

.pilates-definition-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-top: 1px solid rgba(154,136,120,.26);
  border-bottom: 1px solid rgba(154,136,120,.26);
}

.pilates-definition-grid article {
  min-height: 290px;
  padding: 34px 30px;
  border-left: 1px solid rgba(154,136,120,.22);
}

.pilates-definition-grid article:first-child { border-left: 0; }

.pilates-definition-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  margin-bottom: 28px;
  border: 1px solid rgba(154,136,120,.28);
  border-radius: 50%;
  background: #fff;
  color: #5f6e5b;
}

.pilates-definition-icon svg { width: 24px; height: 24px; }

.pilates-definition-grid h3 {
  margin-bottom: 12px;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.5;
}

.pilates-definition-grid article > p:last-child {
  margin: 0;
  color: var(--charcoal);
  font-size: 13px;
  line-height: 1.8;
}

.pilates-support {
  display: grid;
  grid-template-columns: minmax(260px,.7fr) minmax(0,1.3fr);
  gap: 42px;
  margin-top: 48px;
  padding: 38px 42px;
  background: var(--espresso);
  color: var(--ivory);
}

.pilates-support h3 {
  max-width: 310px;
  margin: 0;
  font-size: clamp(25px,2.8vw,34px);
  font-weight: 800;
  line-height: 1.4;
}

.pilates-support ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pilates-support li {
  padding: 8px 20px 18px;
  border-left: 1px solid rgba(255,255,255,.16);
}

.pilates-support li:nth-child(n+3) { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); }
.pilates-support strong { display: block; margin-bottom: 5px; color: var(--gold); font-size: 13px; }
.pilates-support span { color: #ddd1c4; font-size: 12px; line-height: 1.65; }

.pilates-safety-note {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr);
  gap: 24px;
  margin-top: 26px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(154,136,120,.24);
}

.pilates-safety-note strong { color: var(--taupe-deep); font-size: 13px; }
.pilates-safety-note p { max-width: 820px; margin: 0; color: var(--charcoal); font-size: 12px; line-height: 1.8; }
.pilates-sources { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.7; }

.content-photo { margin: 0 0 44px; border-radius: 20px; overflow: hidden; }
.content-photo img { display: block; width: 100%; aspect-ratio: 5 / 1; object-fit: cover; object-position: center 35%; }
body[data-page-type="article"] .content-photo { margin: 0 0 30px; border-radius: 14px; }
.pilates-sources a { color: var(--taupe-deep); }

@media (max-width: 960px) {
  .service-method-grid,
  .pilates-explainer-lead { grid-template-columns: 1fr; gap: 26px; }
  .pilates-definition-grid { grid-template-columns: 1fr; }
  .pilates-definition-grid article { min-height: 0; border-top: 1px solid rgba(154,136,120,.22); border-left: 0; }
  .pilates-definition-grid article:first-child { border-top: 0; }
  .pilates-support { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .journal-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .journal-intro { max-width: 42rem; }
  .journal-feed-head { grid-template-columns: 1fr; gap: 2px; }
  .article-row { grid-template-columns: 220px minmax(0,1fr); gap: 26px; }
  .article-row-media { min-height: 180px; }
}

@media (max-width: 640px) {
  .service-method-intro,
  .pilates-explainer { padding: 52px 0; }
  .service-method-grid { gap: 34px; }
  .service-method-grid h2,
  .pilates-explainer-lead h2 { font-size: 29px; }
  .service-pyramid .top { width: 66%; }
  .service-pyramid .middle { width: 84%; }
  .pilates-definition-grid article { padding: 28px 4px; }
  .pilates-definition-icon { margin-bottom: 20px; }
  .pilates-support { gap: 28px; padding: 30px 22px; }
  .pilates-support ul { grid-template-columns: 1fr; }
  .pilates-support li,
  .pilates-support li:nth-child(n+3) { padding: 14px 0; border-top: 1px solid rgba(255,255,255,.16); border-left: 0; }
  .pilates-support li:first-child { border-top: 0; }
  .pilates-safety-note { grid-template-columns: 1fr; gap: 8px; }
  .journal-hero { padding: 42px 0 44px; }
  .journal-hero h1 { font-size: clamp(30px,9vw,40px); line-height: 1.42; }
  .journal-feed { padding: 46px 0 60px; }
  .journal-feed-head { margin-bottom: 12px; }
  .article-row { grid-template-columns: 1fr; gap: 20px; padding: 26px 0 30px; }
  .article-row-media { min-height: 190px; }
  .article-row h3 { font-size: 23px; line-height: 1.55; }
  body[data-page-type="blog-index"] main > section:last-child { padding-bottom: 56px; }
  body[data-page-type="article"] .article > section:first-child { padding-top: 34px; }
  html[lang="ja"] body[data-page-type="article"] .article h1 { font-size: 29px; line-height: 1.5; }
  body[data-page-type="article"] .article p,
  body[data-page-type="article"] .article li { font-size: 15px; line-height: 1.9; }
  body[data-page-type="article"] .answer-box { padding: 18px 0 18px 18px; }
}
