.heroTop {
  min-height: 100svh;
  padding: calc(var(--header-h) + 88px) var(--gutter) 172px;
  position: relative;
  display: grid;
  align-items: center;
  overflow: hidden;
  color: var(--color-white);
  background:
    linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.54), rgba(0,0,0,.35)),
    var(--hero-image, url("https://images.unsplash.com/photo-1556761175-b413da4baf72?auto=format&fit=crop&w=2200&q=80")) center/cover;
}
.heroTop__content { width: min(1320px, 100%); margin: 0 auto; position: relative; z-index: 3; }
.heroTop__title { max-width: 1060px; font-size: clamp(66px, 7.2vw, 124px); line-height: 1.02; }
.heroTop__lead { max-width: 900px; margin: 36px 0 0; font-size: clamp(17px, 1.5vw, 23px); font-weight: 900; line-height: 2; }
.heroTop__stats { position: absolute; right: var(--gutter); bottom: 38px; z-index: 2; width: min(860px, 56vw); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(255,255,255,.22); background: rgba(20,20,20,.72); }
.heroTop__stats > div { min-height: 96px; display: grid; place-items: center; align-content: center; padding: 16px 14px; border-left: 1px solid rgba(255,255,255,.18); }
.heroTop__stats > div:first-child { border-left: 0; }
.heroTop__stats strong { font-size: clamp(27px, 2.45vw, 40px); line-height: 1.08; white-space: nowrap; }
.heroTop__stats span { margin-top: 9px; color: rgba(255,255,255,.72); font-weight: 900; font-size: 13px; text-align: center; }
.heroTop__scroll { position: absolute; left: 32px; bottom: 48px; writing-mode: vertical-rl; letter-spacing: .16em; color: rgba(255,255,255,.72); font-weight: 900; }

.renewalFront .sectionBlock .displayTitle { font-size: clamp(54px, 6.4vw, 104px); line-height: 1.06; }
.renewalFront .splitGrid .displayTitle { font-size: clamp(52px, 5.6vw, 92px); line-height: 1.08; }
.frontOrigin .displayTitle { max-width: 780px; }
.frontOrigin__text { max-width: 820px; }

.imageStack { position: relative; min-height: 560px; }
.imageStack__item { position: absolute; background-size: cover; background-position: center; }
.imageStack__item--large { top: 0; right: 0; width: 68%; aspect-ratio: 4 / 5; background-image: url("https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1100&q=80"); }
.imageStack__item--small { left: 0; bottom: 20px; width: 56%; aspect-ratio: 4 / 3; background-image: url("https://images.unsplash.com/photo-1517048676732-d65bc937f952?auto=format&fit=crop&w=1100&q=80"); box-shadow: 0 24px 80px rgba(0,0,0,.34); }

.frontSectionTitle { max-width: 1180px; margin: 0 auto; text-align: center; }
.frontService .frontSectionTitle { max-width: 1260px; font-size: clamp(54px, 5.8vw, 96px); }
.frontData .sectionInner { width: min(1360px, calc(100% - clamp(120px, 9vw, 190px))); }
.frontData .splitGrid { grid-template-columns: minmax(0, .84fr) minmax(560px, 1fr); gap: clamp(48px, 5.4vw, 86px); }
.frontData .splitGrid > * { min-width: 0; }
.frontData .displayTitle { max-width: 720px; font-size: clamp(50px, 4.45vw, 76px); }
.frontData .statGrid {
  width: min(100%, 680px);
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.22fr) minmax(0, .95fr);
}
.frontData .statGrid > div { padding-inline: clamp(16px, 1.3vw, 24px); }
.frontData .statGrid strong { font-size: clamp(26px, 1.8vw, 32px); line-height: 1.12; white-space: nowrap; }
.frontData .statGrid span { max-width: 9em; text-align: center; line-height: 1.65; }

.designGrid { margin-top: 58px; display: grid; grid-template-columns: repeat(3, 1fr); }
.serviceGrid { margin-top: 64px; display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid rgba(255,255,255,.16); }
.serviceGrid a { min-height: 260px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; border-left: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.02); }
.serviceGrid a:first-child { border-left: 0; }
.serviceGrid span { color: var(--color-yellow); font-weight: 900; letter-spacing: .12em; }
.serviceGrid strong { font-size: clamp(22px, 2vw, 30px); line-height: 1.35; }
.serviceGrid em { color: rgba(255,255,255,.62); font-style: normal; font-weight: 800; line-height: 1.7; }

.frontCta { background: var(--color-yellow); color: var(--color-black); }
.frontCta__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.frontCta .displayTitle { font-size: clamp(48px, 6vw, 88px); }

.lowerHero {
  min-height: 86svh;
  padding: calc(var(--header-h) + 92px) var(--gutter) 88px;
  display: grid;
  align-items: end;
  color: var(--color-white);
  background:
    linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.55), rgba(0,0,0,.32)),
    var(--lower-hero-image) center/cover;
}

.lowerHero__inner {
  width: min(var(--content-wide), 100%);
  margin: 0 auto;
}

.lowerHero__title {
  max-width: 1120px;
  font-size: clamp(66px, 7vw, 128px);
  line-height: 1.02;
}

.lowerHero__lead {
  max-width: 900px;
  margin: 34px 0 0;
  color: rgba(255,255,255,.9);
  font-size: clamp(17px, 1.5vw, 23px);
  font-weight: 900;
  line-height: 2;
}

.lowerStatement .displayTitle {
  max-width: 760px;
  font-size: clamp(42px, 4.25vw, 76px);
  line-height: 1.13;
  word-break: keep-all;
  overflow-wrap: normal;
}

.lowerStatement .splitGrid {
  grid-template-columns: minmax(0, .88fr) minmax(420px, 1fr);
  gap: clamp(56px, 7vw, 128px);
  align-items: center;
}

.lowerStatement .splitGrid > * {
  min-width: 0;
}

.lowerStatement .leadText {
  max-width: 760px;
}

.lowerPage--about_us .lowerStatement--0 .splitGrid {
  grid-template-columns: minmax(640px, .96fr) minmax(480px, 1fr);
  gap: clamp(56px, 7vw, 120px);
  align-items: center;
}

.lowerPage--about_us .lowerStatement--0 .displayTitle {
  max-width: 760px;
  font-size: clamp(48px, 4.25vw, 72px);
  line-height: 1.16;
}

.lowerPage--about_us .lowerStatement--0 .leadText {
  max-width: 760px;
}

.lowerPage--about_us .lowerStatement--1 .displayTitle {
  max-width: 760px;
  font-size: clamp(48px, 4.7vw, 80px);
  line-height: 1.16;
}

.lowerPage--is_support .lowerStatement--0 .displayTitle {
  max-width: 820px;
  font-size: clamp(48px, 4.65vw, 78px);
  line-height: 1.14;
}

/* Final stabilization for the TOP data section.
   Keeps the large Japanese headline from entering the text/stat column on wide screens. */
.renewalFront .frontData .sectionInner {
  width: min(1480px, calc(100% - clamp(96px, 8vw, 176px)));
}

.renewalFront .frontData .splitGrid {
  grid-template-columns: minmax(0, .92fr) minmax(560px, 1fr);
  gap: clamp(60px, 5.2vw, 96px);
  align-items: center;
}

.renewalFront .frontData .displayTitle {
  width: min(100%, 640px);
  max-width: 640px;
  font-size: clamp(50px, 3.55vw, 68px);
  line-height: 1.15;
  letter-spacing: .01em;
  word-break: keep-all;
  overflow-wrap: normal;
}

.renewalFront .frontData .leadText {
  max-width: 690px;
}

.renewalFront .frontData .statGrid {
  width: min(100%, 680px);
  max-width: 680px;
}

.renewalFront .frontData .statGrid strong {
  font-size: clamp(28px, 1.85vw, 34px);
}

.lowerCards {
  background-image: linear-gradient(rgba(17,21,26,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(17,21,26,.035) 1px, transparent 1px);
  background-size: 80px 80px;
}

.lowerCardGrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 48px;
}

.lowerCardGrid .infoCard {
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.pageContent {
  padding: calc(var(--header-h) + 96px) var(--gutter) var(--section-y);
  background: var(--color-cream);
}

.pageContent__title {
  font-size: clamp(56px, 7vw, 112px);
}

.pageContent__body {
  margin-top: 48px;
  font-weight: 700;
  line-height: 2;
}

/* v18: TOP DATA section final balance.
   Restore the visual scale of the headline while keeping the text/stat
   column safely outside the title area on large desktop screens. */
.renewalFront .frontData .sectionInner {
  width: min(1560px, calc(100% - clamp(112px, 8vw, 190px)));
}

.renewalFront .frontData .splitGrid {
  grid-template-columns: minmax(0, 720px) minmax(0, 700px);
  justify-content: space-between;
  gap: clamp(92px, 6vw, 140px);
  align-items: center;
}

.renewalFront .frontData .displayTitle {
  width: 100%;
  max-width: 720px;
  font-size: clamp(62px, 3.55vw, 76px);
  line-height: 1.12;
  letter-spacing: .005em;
}

.renewalFront .frontData .leadText {
  max-width: 700px;
}

.renewalFront .frontData .statGrid {
  width: min(100%, 680px);
  max-width: 680px;
}

.renewalFront .frontData .statGrid strong {
  font-size: clamp(28px, 1.8vw, 34px);
}
