@charset "UTF-8";
/* =============================================================
   zsc-body.css  —  /zsc/ TOP本文(新デザイン)専用スタイル
   sample/css/style.css 全体を .zsc-renew 配下にスコープ化。
   .zsc-renew の外側(現行ヘッダー/追従ヘッダー/フッター/チャット
   ボット/モバイルナビ)には一切影響しません。自動生成。
   ============================================================= */
/* ============================================
   RESET / BASE
============================================ */
.zsc-renew *,.zsc-renew *::before,.zsc-renew *::after { box-sizing: border-box; }
.zsc-renew { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }
.zsc-renew {
  margin: 0;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-feature-settings: "palt";
  color: #1a1a1a;
  line-height: 1.7;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
.zsc-renew img { max-width: 100%; height: auto; vertical-align: middle; display: block; }
.zsc-renew a { color: inherit; text-decoration: none; }
.zsc-renew ul, .zsc-renew ol { list-style: none; padding: 0; margin: 0; }
.zsc-renew h1, .zsc-renew h2, .zsc-renew h3, .zsc-renew h4, .zsc-renew p { margin: 0; }
.zsc-renew button { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; color: inherit; }

.zsc-renew {
  --c-blue: #1B5DAA;
  --c-blue-2: #2c5cb5;
  --c-blue-deep: #15407e;
  --c-blue-bg: #e8f1f6;
  --c-blue-bg-2: #d8e6f0;
  --c-blue-light-1: #c7dbe9;
  --c-blue-light-2: #d4e3ee;
  --c-blue-light-3: #dde9f2;
  --c-blue-light-4: #e6eef5;
  --c-orange: #FFAE00;
  --c-orange-2: #f5a52c;
  --c-yellow: #ffe066;
  --c-yellow-mark: #ffe97a;
  --c-red: #d83a3a;
  --c-cyan: #11B4C6;
  --c-cyan-light: #b3e3e6;
  --c-green: #6cb33f;
  --c-gray-bg: #f4f4ee;
  --c-gray-line: #d8d8d8;
  --c-text: #1a1a1a;
  --c-text-sub: #555;
  --c-gold: #b8923c;
  --maxw: 1100px;
}

.zsc-renew .container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

/* ============================================
   HEADER
============================================ */
.zsc-renew .site-header {
  position: relative;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid #eee;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 500;
  height: 104px;
}
.zsc-renew .header-inner {
  max-width: 1480px; margin: 0 auto;
  display: flex; align-items: center;
  padding: 7px 32px;
  height: 104px;
}
.zsc-renew .logo { flex-shrink: 0; display: flex; align-items: center; }
.zsc-renew .logo img {
  width: 180px; height: 40px; display: block;
  object-fit: contain;
}
.zsc-renew .gnav { margin-left: 40px; margin-right: auto; min-width: 0; }
.zsc-renew .gnav ul { display: flex; gap: 3px; flex-wrap: nowrap; }
.zsc-renew .gnav a {
  font-size: 16px; font-weight: 500;
  color: #000;
  padding: 10px 16px;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
  white-space: nowrap;
}
.zsc-renew .gnav a:hover { color: var(--c-blue); border-color: var(--c-blue); }

/* Mobile-only items hidden on PC (>=769px) */
@media (min-width: 769px) {
  .zsc-renew .gnav-mobile-only,
  .zsc-renew .gnav-cta { display: none !important; }
  .zsc-renew .gnav-top-link__sp { display: none; }
}
@media (max-width: 768px) {
  .zsc-renew .gnav-top-link__sp { display: inline; }
}

.zsc-renew .header-cta { display: flex; gap: 4px; align-items: stretch; flex-shrink: 0; }
.zsc-renew .hcta {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px;
  width: 134px;
  height: 90px;
  max-width: 134px;
  max-height: 90px;
  flex-shrink: 0;
  padding: 18px 16px;
  border-radius: 6px;
  font-size: 16px; font-weight: 500; line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  box-sizing: border-box;
  transition: opacity .2s, transform .15s;
}
.zsc-renew .hcta:hover { opacity: .85; transform: translateY(1px); }
.zsc-renew .hcta-ico { display: block; width: 26px; height: 26px; }
.zsc-renew .hcta-ico svg,
.zsc-renew .hcta-ico img { width: 100%; height: 100%; display: block; object-fit: contain; }
.zsc-renew .hcta-check .hcta-ico { width: 22px; height: 31px; }
.zsc-renew .hcta-dl .hcta-ico { width: 35px; height: 32px; }
.zsc-renew .hcta-contact .hcta-ico { width: 38px; height: 33px; }
.zsc-renew .hcta-label { display: block; }

.zsc-renew .hcta-check {
  background: #11B4C6;
  color: #fff;
  padding: 18px 22px;
  box-shadow: 2px 2px 0.6px #1E8E9A;
}
.zsc-renew .hcta-dl {
  background: #fff;
  color: var(--c-blue);
  border: 1px solid var(--c-blue);
  box-shadow: 2px 2px 0.6px #164172;
  letter-spacing: -.11em;
}
.zsc-renew .hcta-contact {
  background: var(--c-blue);
  color: #fff;
  box-shadow: 2px 2px 0.6px #123B6C;
}

.zsc-renew .hamburger { display: none; width: 36px; height: 36px; flex-direction: column; justify-content: center; gap: 4px; padding: 0 6px; }
.zsc-renew .hamburger span { display: block; height: 2px; background: #333; border-radius: 1px; }

/* ============================================
   HERO
============================================ */
.zsc-renew .hero { position: relative; padding: 110px 0 80px; overflow: hidden; }
.zsc-renew .hero-bg {
  position: absolute; inset: 0;
  background-image: url('../images/hero-bg.jpg');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  filter: blur(2px);
  transform: scale(1.04);
  z-index: 0;
}
.zsc-renew .hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.35) 30%, rgba(255,255,255,.45) 70%, rgba(255,255,255,.7) 100%);
}
.zsc-renew .hero-inner {
  position: relative; z-index: 1;
  max-width: 1100px; margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  row-gap: 36px;
}
.zsc-renew .hero-top {
  display: grid;
  /* Allow columns to shrink below their content size so the hero never overflows */
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  column-gap: 30px;
  align-items: stretch;
  /* Keep the FV content column within 1000px (matches Figma) */
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.zsc-renew .hero-text {
  padding-top: 0;
  display: flex;
  flex-direction: column;
}
.zsc-renew .hero-right {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
.zsc-renew .hero-mockup {
  margin-top: 0;
  margin-bottom: 0;
}
.zsc-renew .hero-product {
  margin-top: 0;
}

.zsc-renew .hero-badge {
  display: block;
  margin: 0 0 18px;
  line-height: 0;
}
.zsc-renew .hero-badge img {
  width: 100%;
  height: auto;
  max-width: 510px;
  display: block;
}

.zsc-renew .hero-headline {
  font-size: 68px; font-weight: 900; line-height: 1.53;
  letter-spacing: -.01em;
  color: #1a1a1a;
  margin-bottom: 24px;
}
.zsc-renew .hl-row { display: block; }
.zsc-renew .hl-particle { font-size: 0.706em; vertical-align: 0.05em; }
.zsc-renew .hl-quote { font-size: 1em; font-weight: 400; }
.zsc-renew .hl-mobile-badge { display: none; }

.zsc-renew .hero-lead-strong {
  color: #ED6D00;
  font-size: 36px; font-weight: 500;
  margin-top: 32px;
  margin-bottom: 8px;
  line-height: 1;
  letter-spacing: -.02em;
}
.zsc-renew .hero-lead {
  color: #1a1a1a;
  font-size: 24px; font-weight: 500;
  line-height: 1.8;
  margin-bottom: 4px;
}
.zsc-renew .hero-product {
  color: #1a1a1a;
  font-size: 24px; font-weight: 500;
  line-height: 2;
}
.zsc-renew .hero-product strong {
  font-size: 36px; font-weight: 900;
  display: inline-block;
  margin-top: 4px;
  line-height: 1.4;
}

.zsc-renew .hero-mockup { min-width: 0; }
.zsc-renew .hero-mockup img { width: 100%; max-width: 460px; margin-left: auto; display: block; height: auto; }

.zsc-renew .hero-features {
  display: flex; gap: 3px; justify-content: center;
  margin-top: auto;
  padding-top: 40px;
}
.zsc-renew .hero-features li {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  font-size: 20px; font-weight: 500;
  width: 150px;
}
.zsc-renew .hf-icon {
  width: 150px; height: 150px;
  display: grid; place-items: center;
}
.zsc-renew .hf-icon img { width: 100%; height: 100%; object-fit: contain; }
.zsc-renew .hf-label { font-weight: 500; color: #ED6D00; font-size: 20px; }

.zsc-renew .hero-cta {
  display: flex; gap: 7px;
  justify-content: center;
  flex-wrap: nowrap;
  margin-top: 50px;
  width: 100%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 22px;
}
.zsc-renew .hero-cta > li {
  flex: 0 1 328px;
  max-width: 328px;
  min-width: 0;
  position: relative;
}
.zsc-renew .cta-btn {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  gap: 15px;
  width: 100%; height: 121px;
  padding: 10px;
  border-radius: 6px;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 700; font-size: 32px; line-height: 1;
  text-align: center;
  letter-spacing: -.06em;
  transition: transform .15s, box-shadow .15s, opacity .2s;
}
.zsc-renew .cta-btn:hover { transform: translateY(2px); opacity: .9; }
.zsc-renew .cta-text {
  display: block;
  line-height: 1;
  font-size: 32px;
  font-weight: 700;
}
.zsc-renew .cta-flag {
  position: absolute; top: -22px; left: 50%; transform: translateX(-50%);
  background: #fff; color: #11B4C6;
  border: 2px solid #11B4C6;
  font-size: 20px; font-weight: 700;
  height: 43px;
  padding: 0 14px;
  border-radius: 6px;
  white-space: nowrap;
  letter-spacing: 0;
  z-index: 2;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .cta-check {
  background: #11B4C6; color: #fff;
  box-shadow: 2px 4px 0 #198C99, 0 4px 2px rgba(15, 62, 117, .25);
}
.zsc-renew .cta-dl {
  background: #fff; color: var(--c-blue);
  border: 2px solid var(--c-blue);
  box-shadow: 2px 4px 0 #144A89, 0 4px 2px rgba(15, 62, 117, .25);
}
.zsc-renew .cta-contact {
  background: var(--c-blue); color: #fff;
  gap: 20px;
  box-shadow: 0 4px 0 rgba(0, 0, 0, .25), 0 4px 2px rgba(15, 62, 117, .25);
}
.zsc-renew .cta-arrow {
  font-size: 32px;
  line-height: 1;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ============================================
   LOGOS (record section)
============================================ */
.zsc-renew .logos { padding: 80px 0; background: #fff; overflow: hidden; }
.zsc-renew .logos-inner { max-width: 1440px; margin: 0 auto; padding: 0 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 40px; }
.zsc-renew .logos-title-area { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.zsc-renew .logos-title { font-size: 36px; font-weight: 400; color: #000; margin: 0; letter-spacing: 0; line-height: 1; }
.zsc-renew .logos-sub { font-size: 24px; font-weight: 400; color: #000; margin: 0; line-height: 1; }
.zsc-renew .logos-marquee {
  width: 100%;
  overflow: hidden;
  position: relative;
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.zsc-renew .logos-list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 40px;
  width: max-content;
  padding-left: 40px;
  animation: logosScroll 36s linear infinite;
}
.zsc-renew .logos-list li { flex-shrink: 0; }
.zsc-renew .logos-list img { height: 40px; width: auto; display: block; object-fit: contain; }
@keyframes logosScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.zsc-renew .logos-list:hover { animation-play-state: paused; }

/* ============================================
   COMMON SECTION TITLES
============================================ */
.zsc-renew .eyebrow {
  text-align: center; font-size: 16px; letter-spacing: .12em;
  color: var(--c-orange); font-weight: 500;
  margin-bottom: 14px;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
.zsc-renew .eyebrow-orange { color: var(--c-orange); }
.zsc-renew .eyebrow-badge {
  display: block;
  width: 120px;
  height: auto;
  margin: 0 auto 4px;
}
.zsc-renew .dotted-eyebrow {
  margin-bottom: 18px;
}
.zsc-renew .sec-title {
  text-align: center;
  font-size: 38px; font-weight: 700; line-height: 1.25;
  color: var(--c-blue);
  margin-bottom: 50px;
  letter-spacing: .02em;
}
.zsc-renew .sec-title .num4 { font-size: 1.2em; }
.zsc-renew .kawaru { color: #1B5DAA; }
.zsc-renew .goso { color: #FFB000; font-weight: 900; }
.zsc-renew .t-orange-xl { color: var(--c-blue); font-size: 1.7em; font-weight: 900; }
.zsc-renew .t-blue-xl { color: var(--c-orange); font-size: 1.7em; font-weight: 900; }
.zsc-renew .t-blue { color: var(--c-blue); }
.zsc-renew .t-blue-bold { color: var(--c-blue); font-weight: 900; }
.zsc-renew .t-blue-xl { color: var(--c-orange); font-size: 1.5em; font-weight: 900; }
.zsc-renew .t-blue-strong { color: var(--c-blue); }
.zsc-renew .t-orange-xl { color: #FFAE00; font-size: 1.5em; font-weight: 900; }
.zsc-renew .t-orange-bold { color: var(--c-orange); font-weight: 900; }
.zsc-renew .t-cause { color: #fff; }
.zsc-renew .t-red { color: var(--c-red); font-size: 1.5em; font-weight: 900; }
.zsc-renew .sec-title-mixed { line-height: 1.0; display: flex; flex-direction: column; align-items: center; gap: 5px; margin-bottom: 0; }
.zsc-renew .sec-title-mixed .t-big { font-size: 80px; font-weight: 700; line-height: 1.0; color: #1B5DAA; }
.zsc-renew .sec-title-mixed .t-small { font-size: 40px; font-weight: 700; line-height: 1.0; color: #1B5DAA; }
.zsc-renew .worries .sec-title-mixed { margin-bottom: 0; }
.zsc-renew .worries .eyebrow { font-size: 20px; font-weight: 400; color: #FFAE00; margin-bottom: 36px; }
/* dotted: orange ・ above each character (傍点) */
.zsc-renew .t-blue.dotted { display: inline; }
.zsc-renew .t-blue.dotted > span {
  display: inline-block;
  position: relative;
  padding-top: 0.3em;
}
.zsc-renew .t-blue.dotted > span::before {
  content: "";
  position: absolute;
  top: -0.05em;
  left: 50%;
  transform: translateX(-50%);
  width: 0.18em;
  height: 0.18em;
  border-radius: 50%;
  background: var(--c-orange);
}
.zsc-renew .hl-yellow {
  background: linear-gradient(transparent 60%, #ffe97a 60%, #ffe97a 95%, transparent 95%);
  padding: 0 4px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.zsc-renew .hl-yellow2 {
  background: linear-gradient(transparent 65%, #ffe97a 65%, #ffe97a 95%, transparent 95%);
}
/* dotted-yellow: ・ above each character on hl-yellow text */
.zsc-renew .hl-yellow.dotted-yellow > span {
  display: inline-block;
  position: relative;
  padding-top: 0.3em;
}
.zsc-renew .hl-yellow.dotted-yellow > span::before {
  content: "";
  position: absolute;
  top: -0.05em;
  left: 50%;
  transform: translateX(-50%);
  width: 0.18em;
  height: 0.18em;
  border-radius: 50%;
  background: var(--c-orange);
}

/* ============================================
   WORRIES
============================================ */
.zsc-renew .worries { padding: 120px 0 120px; background: #F7F6F2; }
.zsc-renew .worries + .big-arrow { margin-top: 0; }
.zsc-renew .worries .container { display: flex; flex-direction: column; align-items: center; gap: 40px; }
.zsc-renew .worry-grid {
  display: grid;
  grid-template-columns: repeat(3, 325px);
  gap: 10px;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  justify-content: center;
}
.zsc-renew .worry-card {
  background: #fff;
  border: 1px solid #1B5DAA;
  border-radius: 10px;
  padding: 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
}
.zsc-renew .worry-illust {
  width: 186px;
  height: 164px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .worry-illust:empty { background: transparent; }
.zsc-renew .worry-illust img { max-height: 164px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.zsc-renew .worry-card h3 {
  font-size: 20px;
  font-weight: 400;
  color: #C7332F;
  margin: 0;
  line-height: 1.4;
}
.zsc-renew .worry-card .emp { color: #C7332F; font-size: 24px; font-weight: 700; }
.zsc-renew .worry-card p {
  font-size: 16px;
  color: #000;
  line-height: 1.5;
  text-align: center;
  margin: 0;
  max-width: 100%;
}
.zsc-renew .worry-card:nth-child(1) p { width: 275px; }
.zsc-renew .worry-card:nth-child(2) p { width: 275px; }
.zsc-renew .worry-card:nth-child(3) p { width: 264px; }
.zsc-renew .worry-card:nth-child(4) p { width: 260px; }
.zsc-renew .worry-card:nth-child(5) p { width: 263px; }
.zsc-renew .worry-card:nth-child(6) p { width: 260px; }

.zsc-renew .worry-msg {
  text-align: center; font-size: 24px; font-weight: 700;
  margin: 0; line-height: 80px;
  color: #000;
}
.zsc-renew .worry-msg .t-red { color: #C7332F; font-size: 64px; font-weight: 700; }
.zsc-renew .dot-divider {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  margin: 18px auto 30px;
}
.zsc-renew .dot-divider span {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--c-blue);
  opacity: .35;
}

/* CAUSES (4 step) */
.zsc-renew .causes { max-width: 1000px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.zsc-renew .causes-bar {
  position: relative;
  background: var(--c-blue);
  border: none;
  border-radius: 0;
  display: flex; align-items: baseline; justify-content: center; gap: 10px;
  padding: 25px 30px;
  color: #fff;
  font-weight: 700;
  width: 100%;
  height: 111px;
  box-sizing: border-box;
}
.zsc-renew .causes-bar::before,
.zsc-renew .causes-bar::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #fff;
}
.zsc-renew .causes-bar::before { top: 5px; }
.zsc-renew .causes-bar::after { bottom: 5px; }
.zsc-renew .causes-bar h3 { color: #fff; font-size: 32px; font-weight: 700; margin: 0; line-height: 1; letter-spacing: -.02em; display: flex; align-items: baseline; gap: 4px; }
.zsc-renew .causes-bar h3 .t-cause { font-size: 60px; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -.02em; }
.zsc-renew .causes-bar .dot {
  font-size: 16px; color: #fff; font-weight: 700;
  background: none; width: auto; height: auto; border-radius: 0; opacity: 1;
  line-height: 1;
}
.zsc-renew .causes-bar .dot::before { content: "○"; }
.zsc-renew .causes-bar .dot:nth-of-type(2) { margin-right: 40px; }
.zsc-renew .causes-bar .dot:nth-of-type(3) { margin-left: 40px; }
.zsc-renew .cause-wrap {
  margin-top: 0;
  padding: 0;
  border-radius: 0;
  position: relative;
  overflow: visible;
  width: 100%;
}
.zsc-renew .cause-steps {
  display: grid; grid-template-columns: repeat(4, 1fr);
  margin-top: 0;
  gap: 0;
  padding: 0;
  position: relative;
  z-index: 2;
  background-image: url('../images/cause_bg.png');
  background-size: 100% 70%;
  background-repeat: no-repeat;
  background-position: center;
  min-height: 382px;
}
.zsc-renew .cause-steps li {
  position: relative;
  padding-top: 46px;
  padding-bottom: 30px;
  min-height: 382px;
}
.zsc-renew .cs-illust {
  position: absolute;
  top: 248px;
  left: 116px;
  width: 134px;
  height: 134px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .cs-illust img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.zsc-renew .cs-num {
  position: absolute;
  top: 14px; left: 0;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 64px; font-weight: 700;
  color: #9AB1C9;
  line-height: 1;
  z-index: 2;
  letter-spacing: -.02em;
  text-shadow: 5px 5px 0 #fff;
}
.zsc-renew .cs-body {
  position: relative;
  padding: 50px 8px 22px 32px;
  background: transparent;
}
.zsc-renew .cause-steps li:nth-child(1) .cs-body { padding-left: 32px; }
.zsc-renew .cause-steps li:nth-child(2) .cs-body { padding-left: 57px; }
.zsc-renew .cause-steps li:nth-child(3) .cs-body { padding-left: 72px; }
.zsc-renew .cause-steps li:nth-child(4) .cs-body { padding-left: 83px; padding-right: 22px; }

.zsc-renew .cause-steps li:nth-child(1) .cs-num { left: 0; }
.zsc-renew .cause-steps li:nth-child(2) .cs-num { left: 25px; }
.zsc-renew .cause-steps li:nth-child(3) .cs-num { left: 35px; }
.zsc-renew .cause-steps li:nth-child(4) .cs-num { left: 50px; }

.zsc-renew .cause-steps h4 {
  font-size: 28px; font-weight: 700; color: #000;
  margin: 0 0 8px;
  border-bottom: 2px solid #000;
  padding-bottom: 4px;
  display: block;
  width: 165px;
  line-height: 1.3;
  letter-spacing: -.02em;
}
.zsc-renew .cause-steps p { font-size: 16px; color: #000; line-height: 30px; font-weight: 400; }
.zsc-renew .cause-steps strong { font-weight: 700; }

.zsc-renew .big-arrow {
  width: 100%;
  height: auto;
  margin: 0;
  line-height: 0;
  display: block;
  background: #fff;
}
.zsc-renew .big-arrow svg,
.zsc-renew .big-arrow img {
  display: block;
  width: 100%;
  height: auto;
}

/* ============================================
   CHECKLIST
============================================ */
.zsc-renew .checklist { padding: 80px 0 80px; background: #fff; }
.zsc-renew .checklist .container { display: flex; flex-direction: column; align-items: center; gap: 40px; max-width: 1000px; }
.zsc-renew .checklist .eyebrow {
  font-size: 20px; font-weight: 400; color: #FFAE00;
  letter-spacing: 0; margin-bottom: 0;
}
.zsc-renew .checklist .sec-title.check-title {
  display: flex; flex-direction: column; align-items: center;
  gap: 5px;
  color: var(--c-blue); font-weight: 700;
  line-height: 1;
  margin-bottom: 0;
  letter-spacing: 0;
}
.zsc-renew .check-title .ct-line { display: inline-flex; align-items: baseline; }
.zsc-renew .check-title .ct-sm { font-size: 40px; font-weight: 700; line-height: 1; }
.zsc-renew .check-title .ct-lg { font-size: 80px; font-weight: 700; line-height: 1; }
.zsc-renew .check-title .t-orange-bold { color: var(--c-orange); font-weight: 700; }
.zsc-renew .check-title .ct-lg.ct-dotted { display: inline-flex; align-items: baseline; }
.zsc-renew .check-title .ct-lg.ct-dotted > span {
  display: inline-block;
  position: relative;
  padding-top: 0.32em;
  line-height: 1;
}
.zsc-renew .check-title .ct-lg.ct-dotted > span::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0.12em;
  height: 0.12em;
  border-radius: 50%;
  background: var(--c-orange);
}
.zsc-renew .check-sub {
  text-align: center; font-size: 20px; color: #000; font-weight: 400;
  line-height: 48px; margin: 0;
}
.zsc-renew .check-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  justify-items: center;
  gap: 24px;
  width: 100%;
  margin: 0 auto;
}
.zsc-renew .check-illust {
  height: 317px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.zsc-renew .check-illust-left { justify-self: end; }
.zsc-renew .check-illust-right { justify-self: start; }
.zsc-renew .check-illust img {
  display: block;
  height: 100%;
  width: auto;
  max-width: none;
}
.zsc-renew .check-list {
  background: #F2F8FC;
  border-radius: 0;
  padding: 40px 120px;
  width: 661px; max-width: 100%;
  margin: 0 auto;
  box-shadow: 5px 4px 4px 0 #96B4C8;
  display: flex; flex-direction: column; gap: 20px;
  overflow: hidden;
}
.zsc-renew .check-list li {
  display: flex; align-items: center; gap: 20px;
  padding: 0 0 0;
  border-bottom: 1px solid #736059;
  letter-spacing: 0;
  word-spacing: 0;
  color: #000;
}
.zsc-renew .check-list li:last-child { border-bottom: 1px solid #736059; }
.zsc-renew .check-list .cl-text { line-height: 48px; }
.zsc-renew .check-list .cl-sm { font-size: 20px; font-weight: 400; }
.zsc-renew .check-list li strong { font-size: 24px; font-weight: 700; letter-spacing: 0; margin: 0; }
.zsc-renew .cb {
  display: inline-block; width: 19px; height: 18px;
  background: #fff; border: 1px solid #736059; border-radius: 0;
  flex-shrink: 0;
}

.zsc-renew .check-down {
  width: 0; height: 0; margin: 0 auto;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-top: 24px solid var(--c-blue);
}

.zsc-renew .check-result {
  text-align: center; font-size: 24px; line-height: 43px; margin: 0;
  color: #000; font-weight: 400;
}
.zsc-renew .check-result .cr-line { display: block; }
.zsc-renew .check-result .cr-num-big { font-size: 48px; font-weight: 700; color: var(--c-blue); line-height: 43px; }
.zsc-renew .check-result .cr-num-mid { font-size: 32px; font-weight: 700; color: var(--c-blue); line-height: 43px; }
.zsc-renew .check-result .cr-tail { font-size: 24px; line-height: 43px; }
.zsc-renew .check-result .cr-em { font-weight: 500; }

.zsc-renew .check-cta-msg {
  text-align: center;
  margin: 0;
  padding: 20px 0;
  letter-spacing: 0;
  line-height: 1;
  color: #000;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}
.zsc-renew .check-cta-msg .ccm-line {
  display: inline-flex;
  align-items: flex-end;
  position: relative;
  z-index: 0;
  line-height: 1;
}
.zsc-renew .check-cta-msg .ccm-line::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 13px;
  background: rgba(255, 176, 0, 0.33);
  z-index: -1;
}
.zsc-renew .check-cta-msg .ccm-line-1 { letter-spacing: 2.52px; }
.zsc-renew .check-cta-msg .ccm-line-2 { letter-spacing: 0; }
.zsc-renew .check-cta-msg .ccm-lg { font-size: 48px; font-weight: 400; line-height: 1; }
.zsc-renew .check-cta-msg .ccm-sm { font-size: 32px; font-weight: 400; letter-spacing: 2.24px; line-height: 1; }
.zsc-renew .check-cta-msg .ccm-med { font-weight: 500; letter-spacing: 3.36px; }

.zsc-renew .check-cta { text-align: center; }
.zsc-renew .btn-check {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 20px;
  width: 597px; max-width: 100%;
  height: 69px; min-height: 69px;
  padding: 0 20px;
  border-radius: 6px;
  background: #1B5DAA;
  color: #fff;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  font-size: 32px; font-weight: 700; line-height: 1;
  letter-spacing: 0;
  box-shadow: 2px 2px 0 #29578D;
  text-decoration: none;
  position: relative;
}
.zsc-renew .btn-check .btn-check-text { 
  font-weight: 700; 
  font-size: 32px;
}
.zsc-renew .btn-check .btn-check-arrow {
  width: 17px; height: 29px;
  flex-shrink: 0;
  display: block;
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
}

/* ============================================
   BUTTONS
============================================ */
.zsc-renew .btn {
  display: inline-block;
  padding: 16px 50px;
  border-radius: 6px;
  font-weight: 700; font-size: 16px;
  text-align: center;
  transition: opacity .2s, transform .15s;
}
.zsc-renew .btn:hover { opacity: .85; transform: translateY(1px); }
.zsc-renew .btn-primary { background: var(--c-blue); color: #fff; }
.zsc-renew .btn-arrow {
  display: inline-block;
  font-size: 22px;
  line-height: 1;
  margin-left: 10px;
  font-weight: 400;
  transform: translateY(-1px);
}
.zsc-renew .btn-gold {
  background: #A77425;
  color: #fff;
  padding: 12px 92px 11px 93px;
  border-radius: 50.5px;
  font-size: 20px;
  font-weight: 500;
  line-height: 56px;
  width: 360px;
  height: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
  letter-spacing: 0;
}

/* ============================================
   FEATURES
============================================ */
.zsc-renew .features {
  padding: 120px 0;
  position: relative;
  background-image: url('../images/features_bg.jpg');
  background-color: #EAF2F9;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.zsc-renew .features .container {
  max-width: 1000px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 120px;
  margin: 0 auto;
}
.zsc-renew .features-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
  max-width: 480px;
}
.zsc-renew .features-logo {
  width: 180px;
  height: 40px;
  display: block;
  margin: 0;
  object-fit: contain;
}
.zsc-renew .features .features-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
}
.zsc-renew .features .sec-title.features-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
}
.zsc-renew .features-title .ft-small {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 1;
}
.zsc-renew .features-title .ft-big {
  font-size: 88px;
  font-weight: 700;
  color: #FFAE00;
  line-height: 1;
}

.zsc-renew .feature-cards {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  width: 100%;
  max-width: 1000px;
  margin: 0;
  list-style: none;
  padding: 0;
}
.zsc-renew .feature-card {
  width: 320px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  position: relative;
  background: transparent;
}
.zsc-renew .fc-head {
  position: relative;
  padding-top: 20px;
}
.zsc-renew .fc-features {
  position: absolute;
  top: -8px;
  left: 20px;
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  color: rgba(27, 93, 170, 0.32);
  line-height: 1;
  letter-spacing: 0;
}
.zsc-renew .fc-label {
  background: #1B5DAA;
  height: 47px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: #fff;
}
.zsc-renew .feature-card .fc-no {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 32px;
  font-weight: 400;
  color: #fff;
  line-height: 1;
  letter-spacing: 0;
}
.zsc-renew .fc-label-text {
  display: inline-flex;
  align-items: baseline;
  font-size: 28px;
  line-height: 30px;
  font-weight: 500;
}
.zsc-renew .fc-name { color: #FFAE00; font-weight: 700; }
.zsc-renew .fc-suffix { color: #fff; font-weight: 500; }
.zsc-renew .fc-photo {
  width: 100%;
  height: 240px;
  border: 5px solid #1B5DAA;
  border-radius: 30px;
  overflow: hidden;
  background: #fff;
  margin: 0;
}
.zsc-renew .fc-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zsc-renew .feature-card:nth-child(1) .fc-photo img { object-position: center 65%; }
.zsc-renew .fc-photo-empty {
  background: #fff;
  border: 5px solid #1B5DAA;
  border-radius: 30px;
}
.zsc-renew .fc-photo-contain {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .fc-photo-contain img {
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.zsc-renew .fc-desc {
  width: 295px;
  max-width: 100%;
  padding: 0;
  margin: 0;
  font-size: 18px;
  color: #000;
  line-height: 30px;
  font-weight: 400;
}
.zsc-renew .fc-desc strong {
  color: #000;
  font-weight: 700;
  font-size: 24px;
}

/* ============================================
   BENEFITS (zigzag)
============================================ */
.zsc-renew .benefits {
  padding: 120px 0;
  background: #fff;
}
.zsc-renew .benefits .container {
  max-width: 1000px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}
.zsc-renew .benefits-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  max-width: 561px;
  width: 100%;
}
.zsc-renew .benefits-logo {
  width: 180px;
  height: 40px;
  display: block;
  object-fit: contain;
  margin: 0;
}
.zsc-renew .benefits .benefits-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}
.zsc-renew .benefits .sec-title.benefits-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
}
.zsc-renew .benefits-title .bt-line {
  display: inline-flex;
  align-items: baseline;
}
.zsc-renew .benefits-title .bt-small {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 53px;
}
.zsc-renew .benefits-title .bt-big {
  font-size: 80px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 53px;
}
.zsc-renew .benefits-title .bt-num4 {
  font-size: 96px;
  font-weight: 700;
  color: #FFAE00;
  line-height: 88px;
}
.zsc-renew .benefits-title .bt-tsu {
  font-size: 88px;
  font-weight: 700;
  color: #FFAE00;
  line-height: 88px;
}
.zsc-renew .num4 {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 2.2em; color: var(--c-orange);
  font-weight: 900;
  vertical-align: -.05em;
}
.zsc-renew .benefit-zigzag {
  display: flex; flex-direction: column; gap: 0;
  max-width: 1000px; width: 100%; margin: 0 auto;
}
.zsc-renew .benefit-zigzag .bz-row-rev { margin-top: 16px; }
.zsc-renew .bz-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
  height: 420px;
  width: 100%;
  align-items: center;
}
.zsc-renew .bz-col-text {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 450px;
  flex-shrink: 0;
}
.zsc-renew .bz-col-photo {
  width: 500px;
  height: 334px;
  flex-shrink: 0;
  overflow: hidden;
}
.zsc-renew .bz-col-photo img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  aspect-ratio: auto;
  display: block;
}
.zsc-renew .bz-card {
  padding: 15px 5px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  border-bottom: none;
}
.zsc-renew .bz-col-text > .bz-card:last-child { border-bottom: 0; }
.zsc-renew .bz-head {
  display: flex; align-items: center; gap: 8px;
  padding: 5px;
  margin-bottom: 0;
  border-bottom: none;
  position: relative;
}
.zsc-renew .bz-head::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 431px;
  max-width: 100%;
  height: 2px;
  background: #D9D9D9;
}
.zsc-renew .bz-card h3 {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  flex-wrap: nowrap;
  margin: 0;
  flex: 1;
  font-size: 24px;
  font-weight: 700;
  color: #1B5DAA;
  letter-spacing: 0;
  line-height: 1;
}
.zsc-renew .bz-h3-text {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}
.zsc-renew .bz-prefix {
  font-size: 24px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 53px;
}
.zsc-renew .bz-card h3 .bz-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 53px;
  margin-left: 0;
  flex-shrink: 0;
  line-height: 1;
}
.zsc-renew .bz-icon img {
  width: 100%; height: 100%;
  max-width: 100%; max-height: 100%;
  object-fit: contain;
}
.zsc-renew .bz-num {
  flex-shrink: 0;
  width: 76px; height: 76px;
  border-radius: 50%;
  background: #fff;
  border: none;
  box-shadow: 1px 2px 2px rgba(0, 0, 0, .25);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  padding: 0;
}
.zsc-renew .bz-num-eyebrow {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #1B5DAA;
  line-height: 33px;
  letter-spacing: 0;
}
.zsc-renew .bz-num-no {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 36px;
  font-weight: 400;
  color: #FFAE00;
  line-height: 33px;
  letter-spacing: 0;
  margin-top: -10px;
}
.zsc-renew .emp-orange { color: #FFAE00; font-size: 36px; font-weight: 700; line-height: 53px; }
.zsc-renew .bz-card p {
  font-size: 16px;
  color: #000;
  line-height: 32px;
  margin: 0;
  padding: 5px;
  font-weight: 400;
}
.zsc-renew .bz-card p strong { font-weight: 700; color: #000; }

/* ============================================
   REASONS
============================================ */
.zsc-renew .reasons {
  padding: 120px 0;
  background: #F7F6EF;
}
.zsc-renew .reasons .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 120px;
  margin: 0 auto;
}
.zsc-renew .reasons-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  max-width: 480px;
  width: 100%;
}
.zsc-renew .reasons-logo {
  width: 180px;
  height: 40px;
  display: block;
  object-fit: contain;
  margin: 0;
}
.zsc-renew .reasons .reasons-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}
.zsc-renew .reasons .sec-title.reasons-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
}
.zsc-renew .reasons-title .rt-line {
  display: inline-flex;
  align-items: baseline;
}
.zsc-renew .reasons-title .rt-small {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 53px;
}
.zsc-renew .reasons-title .rt-big {
  font-size: 80px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 92px;
}
.zsc-renew .reasons-title .rt-orange {
  color: #FFAE00;
}

.zsc-renew .reasons-box {
  background: #fff;
  border: none;
  border-radius: 0;
  padding: 40px 0;
  width: 1000px;
  max-width: 100%;
  margin: 0 auto;
}
.zsc-renew .reason-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.zsc-renew .reason-card {
  display: flex;
  gap: 10px;
  width: 452px;
  position: relative;
  padding: 0;
  align-items: flex-start;
}
.zsc-renew .reason-card::before { display: none; }
.zsc-renew .rc-sidebar {
  width: 22px;
  height: 270px;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  padding-top: 6px;
}
.zsc-renew .rc-sidebar-text {
  font-family: "Petrona", serif;
  font-size: 24px;
  font-weight: 400;
  color: #1B5DAA;
  letter-spacing: 1.2px;
  line-height: 1;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  height: 100px;
}
.zsc-renew .rc-sidebar-line {
  width: 1px;
  height: 167px;
  background: #1B5DAA;
  margin-top: 3px;
}
.zsc-renew .rc-content {
  width: 420px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.zsc-renew .rc-no {
  display: block;
  font-family: "Petrona", serif;
  font-size: 64px;
  font-weight: 400;
  color: #1B5DAA;
  line-height: 35px;
  letter-spacing: 3.2px;
  text-shadow: 5px 5px 0 #fff;
  margin: 0;
  padding-top: 18px;
}
.zsc-renew .rc-photo {
  width: 420px;
  height: 220px;
  overflow: hidden;
  margin: 0;
  background: transparent;
  aspect-ratio: auto;
}
.zsc-renew .rc-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.zsc-renew .rc-photo-contain {
  background: #fff;
  display: block;
  overflow: hidden;
}
.zsc-renew .rc-photo-contain img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center 25%;
}
.zsc-renew .rc-photo-empty {
  background: transparent;
  min-height: 0;
}
.zsc-renew .reason-card .rc-photo-empty + .rc-title-bar { margin-top: 0; }
.zsc-renew .rc-title-bar {
  background: #1B5DAA;
  width: 100%;
  height: 46px;
  display: flex;
  align-items: center;
  padding: 0 16px 0 24px;
  margin: 0;
  position: relative;
}
.zsc-renew .rc-title-bar::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  background: #FFAE00;
}
.zsc-renew .reason-card h3 {
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  margin: 0;
  border: none;
  padding: 0;
  background: transparent;
  line-height: 1.2;
  letter-spacing: 0;
}
.zsc-renew .rc-desc {
  font-size: 16px;
  color: #000;
  line-height: 30px;
  margin: 0;
  padding: 0;
  font-weight: 400;
}
.zsc-renew .rc-desc strong { font-weight: 700; color: #000; }

/* ============================================
   PLAN
============================================ */
.zsc-renew .plan {
  padding: 120px 0;
  background: #fff;
}
.zsc-renew .plan .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}
.zsc-renew .plan-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  max-width: 480px;
  width: 100%;
}
.zsc-renew .plan-logo {
  width: 180px;
  height: 40px;
  display: block;
  object-fit: contain;
  margin: 0;
}
.zsc-renew .plan .plan-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}
.zsc-renew .plan .sec-title.plan-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
  color: #1B5DAA;
}
.zsc-renew .plan-title .pt-line {
  display: inline-flex;
  align-items: baseline;
}
.zsc-renew .plan-title .pt-small {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 56px;
}
.zsc-renew .plan-title .pt-big {
  font-size: 80px;
  font-weight: 700;
  color: #FFAE00;
  line-height: 88px;
}
.zsc-renew .plan-lead {
  font-size: 20px;
  font-weight: 400;
  color: #000;
  line-height: 31px;
  margin: 20px 0 0;
  text-align: center;
  letter-spacing: 0;
  white-space: nowrap;
}

.zsc-renew .plan-cards {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  width: 1000px;
  max-width: 100%;
  padding: 0 0;
  margin: 0 auto;
  list-style: none;
  border: none;
  overflow: visible;
  border-radius: 0;
}
.zsc-renew .plan-card {
  background: transparent;
  border-radius: 0;
  padding: 0;
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 333px;
  filter: drop-shadow(1px 1px 0 rgba(220, 220, 220, 0.25));
}
.zsc-renew .plan-card + .plan-card {
  border-left: none;
}
.zsc-renew .pc-need {
  width: 100%;
  color: #fff;
  font-weight: 700;
  font-size: 32px;
  padding: 10px;
  line-height: 35px;
  margin: 0;
  position: relative;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.zsc-renew .pc-need::after { display: none; }
.zsc-renew .pc-arrow {
  display: block;
  position: relative;
  width: 127px;
  height: 18px;
  margin: -12px 0 0;
}
.zsc-renew .pc-arrow::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 56px solid transparent;
  border-right: 56px solid transparent;
  border-top: 18px solid currentColor;
}
.zsc-renew .pc-orange .pc-need { background: #FFB000; }
.zsc-renew .pc-green  .pc-need { background: #79B002; }
.zsc-renew .pc-cyan   .pc-need { background: #11B4C6; }
.zsc-renew .pc-orange .pc-arrow { color: #FFB000; }
.zsc-renew .pc-green  .pc-arrow { color: #79B002; }
.zsc-renew .pc-cyan   .pc-arrow { color: #11B4C6; }

.zsc-renew .plan-card-body {
  background: #fff;
  border-left: 1px solid #DCDCDC;
  border-right: 1px solid #DCDCDC;
  border-bottom: 1px solid #DCDCDC;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding-bottom: 20px;
  width: 100%;
  position: relative;
}
.zsc-renew .pc-name {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  border-bottom: 3px solid currentColor;
  padding: 10px;
  margin: 0;
  font-weight: 700;
}
.zsc-renew .pc-name-lg {
  font-size: 36px;
  font-weight: 700;
  line-height: 56px;
}
.zsc-renew .pc-name-sm {
  font-size: 24px;
  font-weight: 700;
  line-height: 56px;
}
.zsc-renew .pc-orange .pc-name,
.zsc-renew .pc-orange .pc-name-lg,
.zsc-renew .pc-orange .pc-name-sm { color: #FFAE00; border-color: #FFB000; }
.zsc-renew .pc-green  .pc-name,
.zsc-renew .pc-green  .pc-name-lg,
.zsc-renew .pc-green  .pc-name-sm { color: #79B002; border-color: #79B002; }
.zsc-renew .pc-cyan   .pc-name,
.zsc-renew .pc-cyan   .pc-name-lg,
.zsc-renew .pc-cyan   .pc-name-sm { color: #11B4C6; border-color: #11B4C6; }

.zsc-renew .pc-name-sub {
  position: absolute;
  top: 76px;
  right: 16px;
  font-size: 20px;
  font-weight: 500;
  color: #11B4C6;
  margin: 15px 40px;
  padding: 0;
  line-height: 1;
  text-align: right;
  white-space: nowrap;
}

.zsc-renew .pc-price-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  width: 100%;
}
.zsc-renew .pc-price {
  font-weight: 700;
  line-height: 56px;
  margin: 0;
  color: #000;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
}
.zsc-renew .pc-price .num {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 96px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 56px;
}
.zsc-renew .pc-price .unit {
  font-size: 20px;
  margin-left: 0;
  font-weight: 500;
  color: #000;
  line-height: 56px;
}
.zsc-renew .pc-meta-1 {
  font-size: 20px;
  font-weight: 400;
  color: #000;
  line-height: 47px;
  margin: 0;
  text-align: center;
}
.zsc-renew .pc-meta-2 {
  font-size: 20px;
  font-weight: 400;
  color: #000;
  line-height: 38px;
  margin: 0;
  text-align: center;
}

.zsc-renew .pc-features {
  text-align: left;
  padding: 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 38px;
  margin: 0;
  list-style: none;
  color: #000;
  display: inline-block;
}
.zsc-renew .pc-features li {
  position: relative;
  padding-left: 0;
  white-space: nowrap;
}
.zsc-renew .pc-features li::before {
  content: "・";
  position: static;
  left: auto;
  top: auto;
  color: #000;
  margin-right: 0;
}

.zsc-renew .pc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  padding: 10px 34px 10px 56px;
  border-radius: 10px;
  font-size: 24px;
  font-weight: 700;
  width: 230px;
  height: 40px;
  margin: 0;
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
  line-height: 20px;
  white-space: nowrap;
  text-decoration: none;
  box-sizing: border-box;
}
.zsc-renew .pc-orange .pc-btn { background: #FFB000; }
.zsc-renew .pc-green  .pc-btn { background: #79B002; }
.zsc-renew .pc-cyan   .pc-btn { background: #11B4C6; }

.zsc-renew .plan-notes {
  align-self: flex-end;
  text-align: left;
  font-size: 16px;
  color: #000;
  font-weight: 400;
  margin: 0;
  padding: 0;
  max-width: 319px;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  line-height: 20px;
}
.zsc-renew .plan-notes li { margin: 0; }

/* ============================================
   COMPARISON
============================================ */
.zsc-renew .comparison {
  padding: 120px 0;
  background: #F2F8FC;
}
.zsc-renew .comparison .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}
.zsc-renew .comparison-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
  text-align: center;
}
.zsc-renew .comparison-logo {
  width: 180px;
  height: 40px;
  display: block;
  object-fit: contain;
  margin: 0;
}
.zsc-renew .comparison .comparison-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  border-bottom: none;
  left: auto;
  transform: none;
  padding: 0;
}
.zsc-renew .comparison .sec-title.comparison-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
  color: #1B5DAA;
  max-width: 699px;
}
.zsc-renew .comparison-title .ct-line {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
}
.zsc-renew .comparison-title .ct-mixed {
  align-items: baseline;
}
.zsc-renew .comparison-title .ct-small .ct-small1{
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 56px;
}
.zsc-renew .ct-small1{
  padding: 0 0 0 35px;
}
.zsc-renew .comparison-title .ct-big {
  font-size: 80px;
  font-weight: 700;
  line-height: 100px;
}
.zsc-renew .comparison-title .ct-blue { color: #1B5DAA; }
.zsc-renew .comparison-title .ct-orange { color: #FFB000; }
.zsc-renew .comparison-title .ct-tight { letter-spacing: -26.8px; }
.zsc-renew .comparison-title .ct-tight2 { letter-spacing: -36.8px; }
.zsc-renew .comparison-title .ct-tight2 + .ct-small { margin-left: 120px; }

.zsc-renew .comp-subtitle {
  font-weight: 400;
  color: #000;
  margin: 0;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0;
}
.zsc-renew .comp-subtitle .cs-sm {
  font-size: 20px;
  font-weight: 400;
}
.zsc-renew .comp-subtitle .cs-big {
  font-size: 32px;
  font-weight: 500;
  position: relative;
  display: inline-block;
  line-height: 1;
  vertical-align: baseline;
  z-index: 0;
}
.zsc-renew .comp-subtitle .cs-big::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 9px;
  background: rgba(255, 176, 0, 0.33);
  z-index: -1;
}

.zsc-renew .comp-lead {
  width: 640px;
  max-width: 100%;
  margin: 0;
  text-align: left;
  letter-spacing: 0;
  color: #000;
  line-height: 31px;
  font-weight: 400;
}
.zsc-renew .comp-lead .cl-sm {
  font-size: 16px;
  font-weight: 400;
  color: #000;
}
.zsc-renew .comp-lead .cl-md {
  font-size: 20px;
  font-weight: 500;
  color: #000;
}

/* Comparison Table */
.zsc-renew .comp-table-wrap {
  width: 1000px;
  max-width: 100%;
  margin: 0;
  padding: 40px 0;
  overflow: visible;
  position: relative;
}
.zsc-renew .comp-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  background: transparent;
  table-layout: fixed;
}
.zsc-renew .comp-table th,
.zsc-renew .comp-table td {
  padding: 0;
  text-align: center;
  border-bottom: none;
  background: transparent;
}
.zsc-renew .comp-table colgroup { display: none; }

.zsc-renew .comp-table thead tr {
  display: flex;
  align-items: center;
  width: 100%;
}
.zsc-renew .comp-table thead th {
  flex: 1 0 0;
  min-width: 0;
  padding: 0;
  border: none;
  background: transparent;
  font-weight: 400;
}
.zsc-renew .comp-table thead .ct-head-blank {
  width: 250px;
  flex: 0 0 250px;
  background: transparent;
}
.zsc-renew .comp-table thead .ct-head-ours {
  background: #1B5DAA;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  padding: 9px 0;
  line-height: 31px;
  border-radius: 0;
}
.zsc-renew .comp-table thead .ct-head-other {
  color: #000;
  font-size: 20px;
  font-weight: 500;
  background: transparent;
  line-height: 31px;
}

.zsc-renew .comp-table tbody {
  display: block;
  width: 100%;
  background: #FEFEFE;
  filter: drop-shadow(0 4px 2px rgba(205, 205, 205, 0.25));
}
.zsc-renew .comp-table tbody tr {
  display: flex;
  align-items: stretch;
  width: 100%;
  border-bottom: 1px solid #5D5D5D;
}
.zsc-renew .comp-table tbody tr:last-child {
  border-bottom: 1px solid #B2B2B2;
}
.zsc-renew .comp-table tbody th,
.zsc-renew .comp-table tbody td {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 0;
  border: none;
  font-size: 20px;
  font-weight: 400;
  color: #000;
  line-height: 31px;
  text-align: center;
}
.zsc-renew .comp-table tbody th {
  width: 250px;
  flex: 0 0 250px;
  background: #F3F3F3;
}
.zsc-renew .comp-table tbody td.ct-ours-cell {
  color: #1B5DAA !important;
  font-weight: 700;
  background: transparent;
  border: none !important;
}
.zsc-renew .comp-table tbody td:not(.ct-ours-cell):not(:first-child) {
  color: #000;
  font-weight: 400;
  font-size: 16px;
}

.zsc-renew .ct-highlight {
  position: absolute;
  top: 28px;
  left: 250px;
  width: 375px;
  height: 376px;
  border: 12px solid #FFB000;
  background: transparent;
  pointer-events: none;
  box-sizing: border-box;
}

/* Recommend Banner */
.zsc-renew .recommend-banner {
  background: #1B5DAA;
  border: 2px solid #1B5DAA;
  border-radius: 0;
  color: #fff;
  padding: 40px 0;
  width: 1000px;
  max-width: 100%;
  margin: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
}
.zsc-renew .recommend-banner .rb-title {
  font-size: 42px;
  font-weight: 700;
  color: #fff;
  line-height: 38px;
  margin: 0;
  text-align: center;
  letter-spacing: 0;
}
.zsc-renew .recommend-banner .rb-list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 1000px;
  max-width: 100%;
}
.zsc-renew .recommend-banner .rb-list li {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 38px;
}
.zsc-renew .recommend-banner .rb-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  flex-shrink: 0;
  color: #FFB000;
  font-weight: 900;
  vertical-align: middle;
  line-height: 0;
}
.zsc-renew .recommend-banner .rb-check img {
  width: 19px;
  height: 19px;
  display: block;
  max-width: none;
  vertical-align: middle;
}

/* ============================================
   CONSULTING
============================================ */
.zsc-renew .consulting {
  padding: 80px 0;
}
.zsc-renew .consulting .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin: 0 auto;
}

.zsc-renew .cons-row {
  background: #fff;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 40px 20px;
  width: 1000px;
  max-width: 100%;
  overflow: hidden;
  position: relative;
  margin: 0;
}

/* Row 1: Header on left, packages on right */
.zsc-renew .cons-row-1 .cons-header {
  width: 450px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-self: stretch;
}
.zsc-renew .cons-title-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.zsc-renew .cons-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #000;
  margin: 0;
  line-height: 24px;
  letter-spacing: 0;
  text-align: left;
}
.zsc-renew .cons-title {
  font-size: 36px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 48px;
  margin: 0;
  letter-spacing: 0;
}
.zsc-renew .cons-title .ct-sm {
  font-size: 36px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 48px;
}
.zsc-renew .cons-title .ct-bracket {
  font-size: 48px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 48px;
}
.zsc-renew .cons-title .ct-emp {
  font-size: 48px;
  font-weight: 700;
  color: #FFAE00;
  line-height: 48px;
}

.zsc-renew .cons-desc-group {
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.zsc-renew .cons-quote {
  font-size: 18px;
  font-weight: 400;
  color: #000;
  line-height: 39px;
  margin: 0;
  letter-spacing: 0;
}
.zsc-renew .cons-desc {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  line-height: 32px;
  margin: 0;
  letter-spacing: 0;
}
.zsc-renew .cons-desc .cd-emp {
  font-weight: 700;
  color: #000;
  position: relative;
  display: inline-block;
  line-height: 1;
  vertical-align: baseline;
  background: transparent;
  padding: 0;
  z-index: 0;
}
.zsc-renew .cons-desc .cd-emp::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 8px;
  background: rgba(255, 176, 0, 0.33);
  z-index: -1;
}

.zsc-renew .cons-notes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: auto;
}
.zsc-renew .cons-notes p {
  font-size: 14px;
  font-weight: 400;
  color: #000;
  line-height: 20px;
  margin: 0;
  letter-spacing: 0;
}

/* Phase Packages (right side) */
.zsc-renew .cons-packages {
  width: 500px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding-top: 71px;
}
.zsc-renew .phase-badge {
  background: #11B4C6;
  color: #fff;
  width: 160px;
  height: 40px;
  padding: 10px;
  border-radius: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0;
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
  box-sizing: border-box;
  white-space: nowrap;
}
.zsc-renew .phase-badge-single { /* same as default */ }

.zsc-renew .phase-cards {
  display: flex;
  gap: 40px;
  align-items: stretch;
  justify-content: flex-end;
  width: 100%;
}
.zsc-renew .phase-card {
  width: 215px;
  background: #fff;
  border: 2px solid #11B4C6;
  border-radius: 10px;
  padding: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 29px;
  filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
  box-sizing: border-box;
  text-align: center;
}
.zsc-renew .ph-no {
  font-size: 16px;
  font-weight: 400;
  color: #11B4C6;
  line-height: 26px;
  margin: 0;
  text-align: center;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  letter-spacing: 0;
}
.zsc-renew .ph-name {
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid #11B4C6;
  font-weight: 700;
  color: #000;
  background: transparent;
}
.zsc-renew .ph-name > span {
  font-size: 18px;
  font-weight: 700;
  color: #000;
  line-height: 26px;
  white-space: nowrap;
  display: inline-block;
}
.zsc-renew .ph-price {
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  text-align: center;
  font-weight: 400;
  color: #000;
  letter-spacing: 0;
}
.zsc-renew .ph-price .num {
  font-size: 36px;
  line-height: 26px;
  font-weight: 400;
  color: #000;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
.zsc-renew .ph-price .man {
  font-size: 24px;
  line-height: 26px;
  font-weight: 400;
  color: #000;
}
.zsc-renew .ph-price .yen {
  font-size: 16px;
  line-height: 26px;
  font-weight: 400;
  color: #000;
}
.zsc-renew .ph-desc {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  line-height: 26px;
  margin: 0;
  text-align: left;
  letter-spacing: 0;
}
.zsc-renew .ph-desc .ph-emp {
  color: #1B5DAA;
  font-weight: 700;
  background: transparent;
  padding: 0;
}

/* Row 2: Image on left, two packages on right */
.zsc-renew .cons-row-2 {
  align-items: flex-end;
}
.zsc-renew .cons-row-2 .cons-image {
  width: 450px;
  height: 330px;
  flex-shrink: 0;
  overflow: hidden;
}
.zsc-renew .cons-row-2 .cons-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 80%;
  display: block;
}
.zsc-renew .cons-packages-2 {
  width: 500px;
  flex-direction: row;
  align-items: stretch;
  justify-content: flex-end;
  gap: 40px;
  padding-top: 0;
}
.zsc-renew .phase-package {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 215px;
}
.zsc-renew .cons-packages-2 .phase-card {
  width: 100%;
  flex: 1;
}

/* ============================================
   TRACK RECORD
============================================ */
.zsc-renew .track {
  padding: 80px 0; text-align: center;
  background-color: #fff;
  background-image: url('../images/track_record_bg.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.zsc-renew .track-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  text-align: center;
  margin-bottom: 50px;
}
.zsc-renew .track .track-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  border-bottom: none;
  left: auto;
  transform: none;
  padding: 0;
}
.zsc-renew .track-title-area .track-headline,
.zsc-renew .track-title-area .track-sub {
  margin: 0;
}
.zsc-renew .track-headline {
  font-weight: 700;
  color: #1B5DAA;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0;
}
.zsc-renew .track-headline .th-sm {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 1;
}
.zsc-renew .track-headline .th-big {
  font-size: 88px;
  font-weight: 700;
  color: #FFAE00;
  line-height: 1;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  letter-spacing: 0;
}
.zsc-renew .track-headline .th-bracket { display: none; }

.zsc-renew .track-sub {
  font-weight: 500;
  color: #000;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0;
}
.zsc-renew .track-sub .ts-sm {
  font-size: 20px;
  font-weight: 500;
  color: #000;
  line-height: 1.5;
}
.zsc-renew .track-sub .ts-big {
  font-size: 32px;
  font-weight: 500;
  color: #000;
  line-height: 1;
  position: relative;
  display: inline-block;
  vertical-align: baseline;
  z-index: 0;
}
.zsc-renew .track-sub .ts-big::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 9px;
  background: rgba(255, 176, 0, 0.33);
  z-index: -1;
}
.zsc-renew .track-sub strong { background: none; padding: 0; font-weight: 500; }

.zsc-renew .track-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  width: 1000px;
  max-width: 100%;
  margin: 0 auto 36px;
  align-items: stretch;
  justify-items: center;
  background: #fff;
  padding: 40px 0;
  border-radius: 0;
  list-style: none;
  box-sizing: border-box;
}
.zsc-renew .track-stats li {
  width: 100%;
  max-width: 320px;
  text-align: center;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: transparent;
}
/* Push the graph to the bottom so labels at the top align across all cards. */
.zsc-renew .track-stats .ts-graph { margin-top: auto; }
.zsc-renew .ts-text-overlay {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.zsc-renew .ts-label {
  font-size: 32px;
  font-weight: 500;
  color: #000;
  line-height: 54px;
  margin: 0 0 4px;
  text-align: center;
  letter-spacing: 0;
}
.zsc-renew .ts-value {
  font-weight: 500;
  line-height: 54px;
  margin: 0 0 14px;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0;
  flex-wrap: nowrap;
  text-align: center;
  color: #000;
  letter-spacing: 0;
}
.zsc-renew .ts-value .num {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 70px;
  color: #FFAE00;
  font-weight: 500;
  line-height: 54px;
  letter-spacing: 0;
}
.zsc-renew .track-stats li:first-child .ts-value .num {
  font-weight: 700;
}
.zsc-renew .ts-value .unit {
  font-size: 21px;
  color: #2165D2;
  font-weight: 500;
  line-height: 54px;
}
.zsc-renew .ts-value .num-s {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 40px;
  color: #2165D2;
  font-weight: 500;
  line-height: 54px;
}
.zsc-renew .ts-value .num-md {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 50px;
  color: #FFAE00;
  font-weight: 500;
  line-height: 54px;
  letter-spacing: 0;
}
.zsc-renew .ts-value .arrow {
  color: #2165D2;
  font-size: 32px;
  font-weight: 500;
  line-height: 54px;
  margin: 0 6px;
}
.zsc-renew .ts-value .word {
  font-size: 40px;
  color: #2165D2;
  font-weight: 500;
  margin-left: 2px;
  line-height: 54px;
}
.zsc-renew .ts-graph {
  width: 100%;
  max-width: 300px;
  height: auto;
  aspect-ratio: 300 / 396;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin: 0 auto;
  filter: drop-shadow(2px 4px 4px rgba(159, 159, 159, 0.25));
}
.zsc-renew .ts-graph img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.zsc-renew .track-cta {
  margin-top: 0;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

/* ============================================
   FLOW
============================================ */
.zsc-renew .flow {
  padding: 120px 0;
  background: #fff;
}
.zsc-renew .flow .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}

.zsc-renew .flow-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  max-width: 480px;
}
.zsc-renew .flow .flow-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  border-bottom: none;
  left: auto;
  transform: none;
  padding: 0;
}
.zsc-renew .flow .sec-title.flow-title {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 1;
  margin: -20px 0 0;
  text-align: center;
  letter-spacing: 0;
}
.zsc-renew .flow-lead {
  font-size: 20px;
  font-weight: 400;
  color: #000;
  line-height: 31px;
  margin: 0;
  text-align: center;
  letter-spacing: 0;
  white-space: nowrap;
}
.zsc-renew .flow-lead .fl-line {
  display: block;
}
.zsc-renew .flow-lead .fl-emp {
  font-weight: 700;
  color: #000;
  position: relative;
  display: inline-block;
  line-height: 1;
  vertical-align: baseline;
  background: transparent;
  padding: 0;
  z-index: 0;
}
.zsc-renew .flow-lead .fl-emp::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 13px;
  background: rgba(255, 176, 0, 0.33);
  z-index: -1;
}

.zsc-renew .flow-steps {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0;
  width: 1000px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  list-style: none;
}
.zsc-renew .flow-steps::before {
  content: "";
  position: absolute;
  left: 78px;
  right: 78px;
  top: 18px;
  height: 3px;
  background: #FFB000;
  z-index: 0;
}
.zsc-renew .flow-steps .flow-step {
  width: 170px;
  text-align: center;
  position: relative;
  z-index: 1;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.zsc-renew .fs-circle {
  width: 40px;
  height: 40px;
  border-radius: 100px;
  background: #FFB000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Petrona", "Noto Sans JP", serif;
  font-size: 40px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: 35px;
  margin: 0;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.zsc-renew .fs-img {
  width: 100%;
  height: 140px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  box-sizing: border-box;
}
.zsc-renew .fs-img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.zsc-renew .fs-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}
.zsc-renew .fs-name {
  font-size: 24px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 29px;
  margin: 0;
  text-align: center;
  letter-spacing: 0;
}
.zsc-renew .fs-desc {
  font-size: 18px;
  font-weight: 400;
  color: #000;
  line-height: 26px;
  margin: 0;
  text-align: center;
  letter-spacing: 0;
}

/* ============================================
   USE CASES
============================================ */
.zsc-renew .use-cases {
  padding: 120px 0;
  background: #F2F3F5;
}
.zsc-renew .use-cases .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}
.zsc-renew .uc-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  max-width: 480px;
}
.zsc-renew .use-cases .uc-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  border-bottom: none;
  left: auto;
  transform: none;
  padding: 0;
}
.zsc-renew .use-cases .sec-title.uc-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: -20px 0 0;
  letter-spacing: 0;
  line-height: 1;
  font-weight: 700;
  color: #1B5DAA;
}
.zsc-renew .uc-title .uct-line {
  display: inline-flex;
  align-items: baseline;
}
.zsc-renew .uc-title .uct-blue {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 56px;
}
.zsc-renew .uc-title .uct-orange {
  font-size: 40px;
  font-weight: 700;
  color: #FFB000;
  line-height: 56px;
}
.zsc-renew .uc-lead {
  text-align: center;
  font-size: 20px;
  font-weight: 400;
  color: #000;
  line-height: 28px;
  margin: 0;
  letter-spacing: 0;
  white-space: nowrap;
}
.zsc-renew .uc-lead strong { font-weight: 700; color: #000; }

.zsc-renew .uc-cards {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 0;
  width: 1000px;
  max-width: 100%;
  padding: 0 10px 0 0;
  margin: 0;
  list-style: none;
  box-sizing: border-box;
}
.zsc-renew .uc-card {
  width: 290px;
  background: #fff;
  border: none;
  border-right: 8px solid #86A8CF;
  border-bottom: 8px solid #86A8CF;
  border-radius: 0;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  box-sizing: border-box;
  text-align: center;
  box-shadow: none;
  position: relative;
}
.zsc-renew .uc-card-top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  width: 200px;
}
.zsc-renew .uc-photo {
  width: 200px;
  height: 200px;
  margin: 0;
  border-radius: 50%;
  overflow: hidden;
}
.zsc-renew .uc-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.zsc-renew .uc-card h3 {
  font-size: 24px;
  font-weight: 500;
  color: #000;
  line-height: 28px;
  margin: 0;
  padding: 0;
  border: none;
  text-align: center;
  width: 100%;
  letter-spacing: 0;
}
.zsc-renew .uc-list {
  list-style: none;
  text-align: left;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
.zsc-renew .uc-list li {
  font-size: 16px;
  font-weight: 500;
  color: #000;
  line-height: 28px;
  letter-spacing: 0;
}

/* ============================================
   FAQ
============================================ */
.zsc-renew .faq {
  padding: 120px 0 80px;
  background: #fff;
}
.zsc-renew .faq .container {
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}
.zsc-renew .faq-title-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
  max-width: 480px;
}
.zsc-renew .faq .faq-eyebrow {
  font-size: 20px;
  font-weight: 400;
  color: #FFAE00;
  margin: 0;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  border-bottom: none;
  left: auto;
  transform: none;
  padding: 0;
}
.zsc-renew .faq .sec-title.faq-title {
  font-size: 40px;
  font-weight: 700;
  color: #1B5DAA;
  line-height: 1;
  margin: 0;
  letter-spacing: 0;
  text-align: center;
}
.zsc-renew .faq-list {
  width: 1000px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.zsc-renew .faq-item {
  background: transparent;
  border-radius: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.zsc-renew .fq-q {
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  background: #F2F8FC;
  border: none;
  border-bottom: 1px solid #C6C6C6;
  line-height: 24px;
  letter-spacing: 0;
  cursor: pointer;
  box-sizing: border-box;
}
.zsc-renew .fq-q > span:first-child {
  color: #1B5DAA;
  font-weight: 500;
  flex-shrink: 0;
}
.zsc-renew .fq-icn {
  margin-left: auto;
  font-weight: 400;
  color: #000;
  font-size: 20px;
  line-height: 24px;
  white-space: nowrap;
  flex-shrink: 0;
}
.zsc-renew .fq-a {
  display: none;
  padding: 20px;
  background: #F2F3F3;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  color: #000;
  box-sizing: border-box;
}
.zsc-renew .fq-a > p {
  margin: 0;
}
.zsc-renew .fq-a > p > span:first-child {
  color: #ED6D00;
  font-weight: 400;
}
.zsc-renew .fq-a {
  position: relative;
}
.zsc-renew .faq-item.open .fq-a {
  display: block;
}
.zsc-renew .fq-close {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 20px;
  line-height: 24px;
  color: #5D5D5D;
  font-weight: 400;
  user-select: none;
  display: inline-block;
  pointer-events: none;
}
.zsc-renew .faq-item { cursor: pointer; }
.zsc-renew .faq-item.open .fq-a { cursor: pointer; }

/* ============================================
   BOTTOM CTA
============================================ */
.zsc-renew .bcta {
  padding: 120px 0;
  position: relative;
  background-image: url('../images/hero-bg.jpg');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}
.zsc-renew .bcta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.72);
  z-index: 0;
}
.zsc-renew .bcta > .container {
  position: relative;
  z-index: 1;
  max-width: 1000px;
  width: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  margin: 0 auto;
}
.zsc-renew .bcta-row {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  width: 1000px;
  max-width: 100%;
  margin: 0;
}
.zsc-renew .bcta-text {
  width: 560px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
  font-size: 24px;
}
.zsc-renew .bcta-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  font-size: 40px;
  font-weight: 700;
  line-height: 59px;
  color: #000;
  margin: 0;
  letter-spacing: 0;
}
.zsc-renew .bcta-title .bct-line {
  display: inline-flex;
  align-items: center;
}
.zsc-renew .bcta-title .bct-row {
  gap: 12px;
}
.zsc-renew .bcta-title .bct-word {
  font-size: 40px;
  font-weight: 700;
  color: #000;
  line-height: 59px;
}
.zsc-renew .bcta-pill {
  background: #FFAE00;
  color: #fff;
  font-size: 40px;
  font-weight: 700;
  line-height: 59px;
  border-radius: 12px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0;
  margin: 0;
  white-space: nowrap;
}
.zsc-renew .bcta-title .hl-yellow {
  background: linear-gradient(transparent 60%, var(--c-yellow-mark) 60%, var(--c-yellow-mark) 95%, transparent 95%);
  padding: 0 6px;
}
.zsc-renew .bcta-lead {
  font-size: 24px;
  line-height: 44px;
  color: #000;
  margin: 0;
  font-weight: 500;
  letter-spacing: 0;
}
.zsc-renew .bcta-lead .bl-md {
  font-size: 24px;
  font-weight: 500;
  line-height: 44px;
}
.zsc-renew .bcta-lead .bl-lg {
  font-size: 32px;
  font-weight: 700;
  line-height: 44px;
}
.zsc-renew .bcta-lead strong { font-weight: 700; }
.zsc-renew .hl-yellow2 {
  background: linear-gradient(transparent 65%, rgba(255, 176, 0, 0.33) 65%, rgba(255, 176, 0, 0.33) 95%, transparent 95%);
  padding: 0 2px;
}
.zsc-renew .bcta-mockup {
  width: 361px;
  height: 278px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .bcta-mockup img {
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  display: block;
  object-fit: contain;
}
.zsc-renew .bcta-buttons {
  width: 1000px;
  max-width: 100%;
  margin: 0;
  padding: 22px 0 0 0;
  list-style: none;
  display: flex;
  gap: 7px;
  justify-content: center;
  align-items: stretch;
}
.zsc-renew .bcta-buttons > li {
  flex: 0 1 328px;
  max-width: 328px;
  min-width: 0;
  position: relative;
}

/* ============================================
   FIXED HEADER (PC, scroll-triggered side panel)
============================================ */
.zsc-renew .fixed-header {
  position: fixed;
  top: 0;
  right: 0;
  visibility: hidden;
  transform: translateX(100%);
  transition: transform .2s ease-in-out, visibility .2s step-end;
  z-index: 100000;
}
.zsc-renew .fixed-header.is-show {
  visibility: visible;
  transform: translateX(0);
  transition: transform .2s ease-in-out, visibility .2s step-start;
}
.zsc-renew .fixed-header-menu-button,
.zsc-renew .fixed-header-inquiry-button,
.zsc-renew .fixed-header-menu { display: block; }
.zsc-renew .fixed-header-menu-button,
.zsc-renew .fixed-header-inquiry-button {
  position: relative;
  writing-mode: vertical-rl;
  text-orientation: upright;
  color: #fff;
  background-color: #1b5daa;
  padding: 30px 20px;
  font-size: 16px;
  line-height: 22px;
  letter-spacing: .2em;
}
.zsc-renew .fixed-header-menu-button {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  border-width: 0;
  border-left: 1px solid #093a73;
  /* Safari (<17.4) ignores writing-mode on <button>, which breaks the
     vertical tab layout. Keep the button itself horizontal and move the
     vertical writing-mode onto the inner wrapper so it renders the same
     in Safari and Chrome. */
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .fixed-header-menu-button__inner {
  writing-mode: vertical-rl;
  text-orientation: upright;
  display: inline-block;
}
.zsc-renew .fixed-header-inquiry-button {
  border-top: 1px solid #093a73;
  border-left: 1px solid #093a73;
  border-bottom: 1px solid #093a73;
  border-radius: 0 0 0 10px;
  background-color: #093a73;
  text-decoration: none;
  writing-mode: horizontal-tb;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 18px 14px;
}
.zsc-renew .fixed-header-inquiry-button > span {
  writing-mode: vertical-rl;
  text-orientation: upright;
}
.zsc-renew .fixed-header-menu-button img {
  width: 22px;
  height: auto;
  vertical-align: bottom;
}
.zsc-renew .fixed-header-inquiry-button img {
  width: 28px;
  height: auto;
  display: block;
}
.zsc-renew .fixed-header-menu-button__text-group {
  display: inline-block;
  position: relative;
  white-space: nowrap;
}
.zsc-renew .fixed-header-menu-button__text--open,
.zsc-renew .fixed-header-menu-button__text--close {
  position: absolute;
  writing-mode: vertical-rl;
  text-orientation: upright;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.zsc-renew .fixed-header-menu-button:hover,
.zsc-renew .fixed-header-inquiry-button:hover {
  text-decoration: none;
  color: #fff;
  background-color: #3f7bc2;
  opacity: 1;
  cursor: pointer;
}
.zsc-renew .fixed-header-inquiry-button:hover { background-color: #144e91; }
.zsc-renew .fixed-header-menu-button__text--label > span,
.zsc-renew .fixed-header-menu-button__text--open > span,
.zsc-renew .fixed-header-menu-button__text--close > span {
  display: inline-block;
  transition: opacity .1s ease-in-out, transform .1s ease-in-out;
}
.zsc-renew .fixed-header-menu-button:hover .fixed-header-menu-button__text--label > span,
.zsc-renew .fixed-header-menu-button__text--open > span,
.zsc-renew .fixed-header-menu-button__text--close > span,
.zsc-renew .fixed-header.is-open .fixed-header-menu-button:hover .fixed-header-menu-button__text--open > span {
  opacity: 0;
  transform: translateY(-5px);
}
.zsc-renew .fixed-header-menu-button__text--label > span,
.zsc-renew .fixed-header-menu-button:hover .fixed-header-menu-button__text--open > span,
.zsc-renew .fixed-header.is-open .fixed-header-menu-button:hover .fixed-header-menu-button__text--close > span {
  opacity: 1;
  transform: translateY(0);
}
.zsc-renew .fixed-header-menu-button__line-group {
  display: inline-block;
  position: relative;
  width: 16px;
  height: 16px;
}
.zsc-renew .fixed-header-menu-button__line {
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #fff;
  left: 0;
  top: calc(50% - 1px);
  transform-origin: 50% 50%;
  transition: transform .1s ease-in-out, opacity .1s ease-in-out;
}
.zsc-renew .fixed-header-menu-button__line--1 { transform: translateY(-7px); }
.zsc-renew .fixed-header-menu-button__line--3 { transform: translateY(7px); }
.zsc-renew .fixed-header.is-open .fixed-header-menu-button__line--1 { transform: rotate(45deg); }
.zsc-renew .fixed-header.is-open .fixed-header-menu-button__line--2 { opacity: 0; }
.zsc-renew .fixed-header.is-open .fixed-header-menu-button__line--3 { transform: rotate(-45deg); }
.zsc-renew .fixed-header-menu {
  position: absolute;
  right: 0;
  top: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease-in-out, visibility .3s step-end;
  width: 420px;
  max-width: calc(100vw - 80px);
  height: 100vh;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, .2);
}
.zsc-renew .fixed-header.is-open .fixed-header-menu {
  opacity: 1;
  visibility: visible;
  transition: opacity .3s ease-in-out, visibility .3s step-start;
}
.zsc-renew .fixed-header-menu__container {
  padding: 12px 20px;
  padding-right: 80px;
  /* Extra bottom space so the last menu items can be scrolled up past the
     chatbot button (PC: 250x185 + 30px offset ≈ 215px from the viewport bottom). */
  padding-bottom: 240px;
  height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.zsc-renew .fixed-header-menu__list { list-style: none; padding: 0; margin: 0; }
.zsc-renew .fixed-header-menu__item { border-bottom: 1px solid #e8e8e8; }
.zsc-renew .fixed-header-menu__item > a {
  display: block;
  font-size: 15px;
  padding: .9em 1em;
  font-weight: bold;
  color: #337ab7;
  text-decoration: none;
}
.zsc-renew .fixed-header-menu__item > a:hover,
.zsc-renew .fixed-header-menu__item > a:focus {
  color: #23527c;
  text-decoration: underline;
  opacity: .75;
}
.zsc-renew .fixed-header-menu__links {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  font-size: 15px;
  padding: 1em 0;
  gap: 1em;
}
.zsc-renew .fixed-header-menu__links > a {
  display: block;
  padding: 1em;
}
.zsc-renew .fixed-header-menu__link-diagnostic,
.zsc-renew .fixed-header-menu__link-demo {
  background-color: #79b001;
  color: #fff;
  border-radius: 5px;
  text-align: center;
  font-weight: bold;
  letter-spacing: .1em;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
}
.zsc-renew .fixed-header-menu__link-diagnostic > img,
.zsc-renew .fixed-header-menu__link-demo > img {
  width: 25px;
  height: auto;
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  flex-shrink: 0;
}
.zsc-renew .fixed-header-menu__link-diagnostic > span,
.zsc-renew .fixed-header-menu__link-demo > span { vertical-align: middle; }
.zsc-renew .fixed-header-menu__link-diagnostic:hover,
.zsc-renew .fixed-header-menu__link-demo:hover {
  opacity: .75;
  color: #fff;
  text-decoration: none;
}

/* ============================================
   FOOTER (as-is from https://infusion.co.jp/zsc/ )
============================================ */
.zsc-renew .site-footer {
  background: #3b3b3b;
  font-family: Meiryo, メイリオ, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', arial, helvetica, sans-serif;
  font-size: 14px;
  line-height: 1.42857143;
  color: #333;
  font-feature-settings: normal;
}
.zsc-renew .site-footer * { box-sizing: border-box; }
.zsc-renew .site-footer a {
  color: #337ab7;
  text-decoration: none;
}
.zsc-renew .site-footer a:hover,
.zsc-renew .site-footer a:focus {
  color: #23527c;
  text-decoration: underline;
  opacity: 0.75;
}

/* Bootstrap-like grid utilities, scoped to footer to avoid conflicting
   with the page's existing .container rule. */
.zsc-renew .site-footer .container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
  max-width: none;
}
@media (min-width: 768px) {
  .zsc-renew .site-footer .container { width: 100%; }
}
@media (min-width: 992px) {
  .zsc-renew .site-footer .container { width: 1000px; }
}
@media (min-width: 1200px) {
  .zsc-renew .site-footer .container { width: 1000px; }
}
.zsc-renew .site-footer .row {
  margin-right: -15px;
  margin-left: -15px;
}
.zsc-renew .site-footer .row::after {
  content: '';
  display: block;
  clear: both;
}
.zsc-renew .site-footer .col-sm-6,
.zsc-renew .site-footer .col-md-6,
.zsc-renew .site-footer .col-lg-6 {
  position: relative;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}
@media (min-width: 768px) {
  .zsc-renew .site-footer .col-sm-6 { float: left; width: 50%; }
}
@media (min-width: 992px) {
  .zsc-renew .site-footer .col-md-6 { float: left; width: 50%; }
}
@media (min-width: 1200px) {
  .zsc-renew .site-footer .col-lg-6 { float: left; width: 50%; }
}

/* Bootstrap-like visibility utilities, scoped to footer. */
.zsc-renew .site-footer .visible-xs,
.zsc-renew .site-footer .visible-sm,
.zsc-renew .site-footer .visible-md,
.zsc-renew .site-footer .visible-lg { display: none !important; }

@media (max-width: 767px) {
  .zsc-renew .site-footer .visible-xs { display: block !important; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .zsc-renew .site-footer .visible-sm { display: block !important; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .zsc-renew .site-footer .visible-md { display: block !important; }
}
@media (min-width: 1200px) {
  .zsc-renew .site-footer .visible-lg { display: block !important; }
}

/* PAGETOP */
.zsc-renew .site-footer .pagetop {
  background: #1b5daa;
  text-align: center;
}
.zsc-renew .site-footer .pagetop a {
  display: flex;
  align-items: center;
  justify-content: center;
}
.zsc-renew .site-footer .pagetop a img {
  display: block;
  margin: 0 auto;
}

/* Copyright */
.zsc-renew .site-footer .copyright {
  text-align: center;
  color: #ffffff;
  line-height: 44px;
  background: #252525;
}
@media (max-width: 767px) {
  .zsc-renew .site-footer .copyright {
    text-align: center;
    color: #ffffff;
    line-height: 30px;
    background: #252525;
    font-size: 10px;
  }
}

/* Footer content */
.zsc-renew .site-footer .footer-content {
  color: #ffffff;
  padding: 50px 15px;
}
@media (max-width: 767px) {
  .zsc-renew .site-footer .footer-content {
    color: #ffffff;
    padding: 30px 0 0 0;
    text-align: center;
    font-size: 13px;
  }
  .zsc-renew .site-footer .footer-content .row {
    margin: 0;
  }
  .zsc-renew .site-footer .footer-content img {
    width: 274px;
  }
}
.zsc-renew .site-footer .footer-addr {
  font-size: 16px;
  margin-top: 22px;
  text-align: left;
  color: #fff;
}
.zsc-renew .site-footer .footer-links {
  overflow: hidden;
  padding-top: 7px;
  margin-left: -11px;
}
.zsc-renew .site-footer .footer-links ul {
  overflow: hidden;
  float: left;
  list-style: none;
  padding: 0;
  margin: 0 40px 0 0;
}
.zsc-renew .site-footer .footer-links ul li {
  margin-bottom: 12px;
  background: url('https://infusion.co.jp/wp/wp-content/themes/infusion/images/ico_arrow02.gif') left 6px no-repeat;
  padding-left: 15px;
  color: #fff;
  line-height: 1.5;
}
.zsc-renew .site-footer .footer-links ul li a {
  color: #fff;
  text-decoration: underline;
}
.zsc-renew .site-footer .footer-links ul li a:hover {
  color: #fff;
  text-decoration: none;
}

@media (max-width: 767px) {
  .zsc-renew .site-footer .footer-links {
    overflow: hidden;
    padding-top: 0;
    margin: 0 -15px;
  }
  .zsc-renew .site-footer .footer-links ul {
    overflow: hidden;
    float: none;
    list-style: none;
    padding: 0;
    margin: 0 0 0 0;
  }
  .zsc-renew .site-footer .footer-links ul li {
    margin-bottom: 0;
    background: none;
    padding-left: 0;
    border-top: 1px solid #e8e8e8;
    width: 50%;
    float: left;
    border-right: 1px solid #e8e8e8;
    position: relative;
  }
  .zsc-renew .site-footer .footer-links ul li a.line2 {
    line-height: 1.2;
  }
  .zsc-renew .site-footer .footer-links ul li a:not(.line2) {
    line-height: 2.4;
  }
  .zsc-renew .site-footer .footer-links ul li:before {
    background: url('https://infusion.co.jp/wp/wp-content/themes/infusion/images/ico_arrow03.gif');
    background-size: 6px 9px;
    width: 6px;
    height: 9px;
    right: 10px;
    top: 50%;
    margin-top: -4px;
    content: "";
    position: absolute;
  }
  .zsc-renew .site-footer .footer-links ul li:first-child {
    width: 100%;
  }
  .zsc-renew .site-footer .footer-links ul li:first-child:before {
    width: 0;
  }
  .zsc-renew .site-footer .footer-links ul li:nth-child(2n+1) {
    border-right: 0;
  }
  /* Force each left-column cell onto a new row. Without this, Safari can
     stagger the floated cells so the last item (e.g. 資料請求・お問い合わせ)
     drifts into the right column and the bottom border under the cell above
     it (e.g. 個人情報保護方針) disappears. Chrome already renders an even
     grid, so this is a no-op there. */
  .zsc-renew .site-footer .footer-links ul li:nth-child(2n) {
    clear: left;
  }
  .zsc-renew .site-footer .footer-links ul li a {
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    display: block;
    padding: 12px 5px 12px 15px;
    text-align: left;
  }
  .zsc-renew .site-footer .footer-links ul li.has-border-bottom {
    box-shadow: 0 1px 0 #e8e8e8;
  }
  @media (max-width: 320px) {
    .zsc-renew .site-footer .footer-links ul li a {
      font-size: 12px;
    }
  }
  .zsc-renew .site-footer .footer-links ul li:first-child a {
    text-align: center;
  }
  .zsc-renew .site-footer .footer-links ul li a:hover {
    color: #fff;
    text-decoration: none;
  }
}

/* ============================================
   RESPONSIVE - SP
============================================ */
.zsc-renew .br-sp { display: none; }
.zsc-renew .br-pc { display: inline; }
.zsc-renew .bct-sp-only { display: none; }
.zsc-renew .bct-pc-only { display: inline; }
.zsc-renew .benefits-foot-img { display: none; }

@media (max-width: 768px) {
  .zsc-renew .br-sp { display: inline; }
  .zsc-renew .br-pc { display: none; }
  .zsc-renew .bct-pc-only { display: none; }
  .zsc-renew, .zsc-renew { overflow-x: hidden; max-width: 100vw; }
  .zsc-renew { width: 100%; }
  .zsc-renew img { max-width: 100%; height: auto; }
  .zsc-renew .container { padding: 0 16px; max-width: 100%; box-sizing: border-box; }

  /* Hide fixed-header on mobile per reference site */
  .zsc-renew .fixed-header { display: none; }

  /* HEADER */
  .zsc-renew .site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: transparent;
    box-shadow: none;
    transition: background-color .25s ease, box-shadow .25s ease;
    height: 60px;
  }
  .zsc-renew .site-header .header-inner {
    background: rgba(255, 255, 255, .65);
    backdrop-filter: blur(2px);
    transition: background-color .25s ease;
  }
  .zsc-renew .site-header.is-scrolled .header-inner {
    background: #fff;
    box-shadow: 0 1px 0 rgba(0,0,0,.08);
  }
  .zsc-renew .site-header .header-inner {
    background: rgba(255, 255, 255, .6);
    padding: 10px 14px;
    gap: 8px;
    height: 60px;
    min-height: 60px;
    box-sizing: border-box;
  }
  .zsc-renew .gnav, .zsc-renew .header-cta { display: none; }
  .zsc-renew .logo { margin-right: auto; }
  .zsc-renew .logo img { width: auto; height: 40px; }

  /* Hamburger - matches Figma SP fv: 42x42 square with 36-wide bars + MENU label */
  .zsc-renew .hamburger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-left: auto;
    width: 42px;
    height: 42px;
    padding: 0 0 6px 0;
    border: 1px solid #1B5DAA;
    border-radius: 0;
    background: transparent;
    color: #1B5DAA;
    box-sizing: border-box;
  }
  .zsc-renew .hamburger .hb-bars {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 4px;
    width: 36px;
    height: auto;
    background: transparent;
  }
  .zsc-renew .hamburger .hb-bars span {
    display: block;
    width: 100%;
    height: 1px;
    background: #1B5DAA;
    border-radius: 0;
  }
  .zsc-renew .hamburger .hb-label {
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #1B5DAA;
    line-height: 1;
    margin: 4px 0 0 0;
    letter-spacing: 0;
    background: transparent;
  }

  .zsc-renew .gnav.open {
    display: block !important;
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    width: 100vw;
    margin: 0;
    height: calc(100vh - 60px);
    height: calc(100dvh - 60px);
    background: #fff;
    padding: 0;
    box-shadow: 0 6px 14px rgba(0,0,0,.1);
    z-index: 110;
    overflow-x: hidden;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
  }
  /* Mobile menu list (matches reference .navbar-nav exactly) */
  .zsc-renew .gnav.open ul {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid #e8e8e8;
    overflow: hidden;
  }
  .zsc-renew .gnav.open ul li {
    float: left;
    width: 50%;
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0;
    box-sizing: border-box;
  }
  /* 1st item full width */
  .zsc-renew .gnav.open ul li:first-child {
    width: 100%;
  }
  .zsc-renew .gnav.open ul a {
    padding: 10px 15px;
    line-height: 30px;
    border-bottom: 1px solid #e8e8e8;
    border-left: 0;
    width: 100%;
    font-size: 13px;
    color: #252525 !important;
    text-align: left;
    display: block;
    position: relative;
    box-sizing: border-box;
    text-decoration: none;
    background: transparent;
  }
  /* Odd items get left border (creates left-edge line on left-column items) */
  .zsc-renew .gnav.open ul li:nth-child(2n+1) > a {
    border-left: 1px solid #e8e8e8;
  }
  /* 2nd item full width, no left border (matches reference special rule) */
  .zsc-renew .gnav.open ul li:nth-child(2) > a {
    width: 100%;
    border-left: 0;
  }
  /* Last item: no right border (parity safety) */
  .zsc-renew .gnav.open ul li:last-child > a {
    border-right: 0;
  }
  /* Right arrow indicator (uses reference ico_arrow.gif image) */
  .zsc-renew .gnav.open ul a::before {
    content: '';
    position: absolute;
    background: url('https://infusion.co.jp/wp/wp-content/themes/infusion/images/ico_arrow.gif') center no-repeat;
    background-size: 6px 9px;
    width: 6px;
    height: 9px;
    right: 10px;
    top: 50%;
    margin-top: -4px;
  }
  /* Last item right border helper (matches reference .menu-item-has-border-right) */
  .zsc-renew .gnav.open ul li.menu-item-has-border-right > a {
    box-shadow: 1px 0 0 #e8e8e8;
  }

  /* CTA image buttons section (matches reference .nav-btn).
     Compact vertical spacing; extra padding-bottom leaves clearance for the
     chatbot button so the last CTA stays visible when scrolled to the end. */
  .zsc-renew .gnav-cta {
    clear: both;
    padding: 12px 16px 200px;
    text-align: center;
    border-bottom: 1px solid #e8e8e8;
  }
  .zsc-renew .gnav-cta p { margin: 0 0 12px; }
  .zsc-renew .gnav-cta p:last-child { margin-bottom: 0; }
  .zsc-renew .gnav-cta a {
    display: block;
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
    line-height: 0;
  }
  /* All three CTA images share an identical display width so the buttons
     are visually balanced (heights vary per image's natural aspect ratio). */
  .zsc-renew .gnav-cta img {
    width: 100%;
    height: auto;
    display: block;
  }
  .zsc-renew .gnav-cta a:hover { opacity: .75; }

  /* Text-with-icon variant that visually re-creates the original btn01_sp.gif
     (green rounded rectangle + clipboard icon + right arrow), keeping the same
     frame and icon as the original image but with custom Japanese text.
     Layout: icon on the left + text centered in the button frame.
     The `::after` element acts as an invisible balancer (same width as the icon)
     so that .gnav-cta-btn__text sits at the true center of the button. */
  .zsc-renew .gnav-cta-btn {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 280px;
    /* Same display height as 280-wide btn01_sp.gif (640x150 → 280x65.6) */
    min-height: 66px;
    margin: 0 auto;
    padding: 6px 28px 6px 14px !important;
    border-radius: 6px;
    background: #79b001;
    color: #fff !important;
    font-size: 17px !important;
    font-weight: 700;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
    /* Allow the longer label (資料請求...) to wrap; shorter labels stay on one line */
    white-space: normal !important;
    word-break: break-word;
    border: 0 !important;
    box-shadow: 0 2px 0 rgba(0,0,0,.1);
    box-sizing: border-box;
    letter-spacing: .02em;
  }
  .zsc-renew .gnav-cta-btn::after {
    content: '';
    width: 32px;
    height: 1px;
    flex-shrink: 0;
    visibility: hidden;
  }
  .zsc-renew .gnav-cta-btn:hover { opacity: .9; }
  /* Icon sits in normal flow as the first flex item (left of the text) */
  .zsc-renew .gnav-cta-btn__ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    background: #79b001;
  }
  .zsc-renew .gnav-cta-btn__ico img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    max-width: none;
  }
  .zsc-renew .gnav-cta-btn__text { display: inline-block; text-align: center; }
  .zsc-renew .gnav-cta-btn__arrow {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    line-height: 1;
    font-weight: 400;
    color: #fff;
  }

  /* Inquiry variant: white background with dark text + blue envelope icon.
     Font size and letter-spacing aligned with .gnav-cta-btn--demo. */
  .zsc-renew .gnav-cta-btn--inquiry {
    background: #fff !important;
    color: #252525 !important;
    border: 1px solid #d0d0d0 !important;
    font-size: 15px !important;
    letter-spacing: 0 !important;
    padding: 8px 10px !important;
    gap: 8px;
  }
  /* No balancer for --inquiry: maximize horizontal room so the
     "資料請求・お問い合わせはこちら" label can sit on a single line. */
  .zsc-renew .gnav-cta-btn--inquiry::after { display: none; }
  .zsc-renew .gnav-cta-btn--inquiry .gnav-cta-btn__text {
    white-space: nowrap;
  }
  .zsc-renew .gnav-cta-btn--inquiry .gnav-cta-btn__ico {
    background: transparent;
    width: 26px;
    height: 26px;
  }
  .zsc-renew .gnav-cta-btn--inquiry .gnav-cta-btn__ico svg {
    width: 26px;
    height: 26px;
    display: block;
    color: #2765AE;
  }
  /* ============================================
     --check / --demo: match the PC fixed-header diagnostic / demo
     button design exactly (same colors, padding, icon size, layout).
     Overrides the base .gnav-cta-btn styles above. */
  .zsc-renew .gnav-cta-btn--check,
  .zsc-renew .gnav-cta-btn--demo {
    background-color: #79b001 !important;
    color: #fff !important;
    border-radius: 5px !important;
    text-align: center;
    font-weight: bold;
    letter-spacing: .1em !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: .5em;
    padding: 1em !important;
    font-size: 15px !important;
    /* Inherit the base .gnav-cta-btn min-height (66px) and box-shadow so
       all three CTAs share the same height and drop shadow as --inquiry. */
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
    border: 0 !important;
    white-space: normal !important;
    word-break: normal;
    line-height: 1.4 !important;
    box-sizing: border-box;
  }
  /* The right-side balancer pseudo-element is only used by --inquiry */
  .zsc-renew .gnav-cta-btn--check::after,
  .zsc-renew .gnav-cta-btn--demo::after { display: none; }

  .zsc-renew .gnav-cta-btn--check .gnav-cta-btn__ico,
  .zsc-renew .gnav-cta-btn--demo .gnav-cta-btn__ico {
    display: inline-flex;
    align-items: center;
    width: 25px;
    height: auto;
    background: transparent;
    flex-shrink: 0;
    margin: 0;
  }
  .zsc-renew .gnav-cta-btn--check .gnav-cta-btn__ico img,
  .zsc-renew .gnav-cta-btn--demo .gnav-cta-btn__ico img {
    width: 25px;
    height: auto;
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    max-width: none;
  }
  .zsc-renew .gnav-cta-btn--check:hover,
  .zsc-renew .gnav-cta-btn--demo:hover { opacity: .75; color: #fff; text-decoration: none; }

  /* HERO - reordered using display:contents */
  .zsc-renew .hero { padding: 88px 0 24px; }
  .zsc-renew .hero-inner {
    display: block;
    padding: 0;
  }
  .zsc-renew .hero-top {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    column-gap: 0;
    padding: 24px 0 0;
    width: 100%;
    max-width: 350px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
  .zsc-renew .hero-text, .zsc-renew .hero-right { display: contents; }
  .zsc-renew .hero-badge { display: none; }

  .zsc-renew .hero-headline {
    order: 1;
    font-size: 48px;
    line-height: 1.46;
    margin: 0 auto 14px;
    text-align: left;
    width: 100%;
    max-width: 350px;
    min-width: 0;
    letter-spacing: -0.01em;
  }
  .zsc-renew .hero-headline .hl-row { display: block; }
  .zsc-renew .hero-headline .hl-row:first-child {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    flex-wrap: nowrap;
  }
  .zsc-renew .hero-headline .hl-row:first-child > :is(span, br):not(.hl-mobile-badge) { flex-shrink: 0; }
  .zsc-renew .hl-mobile-badge {
    display: inline-block;
    width: 186px;
    max-width: 186px;
    min-width: 0;
    height: auto;
    margin-left:15px;
    flex-shrink: 0;
    object-fit: contain;
  }
  .zsc-renew .hero-headline .hl-row:first-child { min-width: 0; overflow: hidden; }
  .zsc-renew .hl-particle {
    font-size: 28px;
    vertical-align: bottom;
  }
  /* Push "が" (first row particle) a bit higher within the flex row */
  .zsc-renew .hero-headline .hl-row:first-child .hl-particle {
    align-self: flex-end;
    margin-bottom: 5px;
  }
  /* Keep "を" on the same line as "合わない会社" in row 2 */
  .zsc-renew .hero-headline .hl-row:nth-child(2) {
    white-space: nowrap;
    letter-spacing: -0.02em;
  }
  .zsc-renew .hero-headline .hl-row:nth-child(2) .hl-quote {
    font-size: 36px;
  }
  .zsc-renew .hero-headline .hl-row:nth-child(2) .hl-particle {
    vertical-align: bottom;
  }
  .zsc-renew .hero-mockup {
    order: 2;
    margin: 0 0 24px;
  }
  .zsc-renew .hero-mockup img {
    width: 78%;
    max-width: 307px;
    height: auto;
    aspect-ratio: 307 / 251;
    object-fit: cover;
    margin: 0 auto;
    display: block;
  }
  .zsc-renew .hero-lead-strong {
    order: 3;
    font-size: 24px;
    text-align: left;
    color: #ED6D00;
    margin: 0 0 0;
    line-height: 34px;
    font-weight: 500;
    letter-spacing: 0;
  }
  .zsc-renew .hero-lead {
    order: 4;
    font-size: 15px;
    text-align: left;
    color: #000;
    margin: 0;
    line-height: 31px;
    font-weight: 500;
    letter-spacing: 0;
  }
  .zsc-renew .hero-product {
    order: 5;
    font-size: 15px;
    text-align: left;
    color: #000;
    margin: 0 0 22px;
    line-height: 34px;
    font-weight: 500;
    letter-spacing: 0;
  }
  .zsc-renew .hero-product strong {
    font-size: 24px;
    font-weight: 900;
    color: #000;
    display: inline-block;
    margin-top: 2px;
    line-height: 34px;
    letter-spacing: 0;
  }

  .zsc-renew .hero-features {
    order: 6;
    display: flex;
    gap: 3px;
    margin: 8px 0 0;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
    justify-content: space-between;
    align-items: center;
  }
  .zsc-renew .hero-features li {
    font-size: 18px;
    gap: 4px;
    text-align: center;
    padding: 0;
    min-width: 0;
    flex: 1 1 0;
    overflow: hidden;
    width: auto;
  }
  .zsc-renew .hf-icon { width: 100%; max-width: 115px; height: auto; aspect-ratio: 1 / 1; margin: 0 auto; }
  .zsc-renew .hf-icon img { width: 100%; height: 100%; object-fit: contain; }
  .zsc-renew .hf-label {
    font-size: 18px;
    font-weight: 500;
    text-align: center;
    color: #ED6D00;
    line-height: 34px;
  }

  /* Hide hero CTA buttons on mobile (per design) */
  .zsc-renew .hero .hero-cta { display: none; }
  .zsc-renew .cta-btn { min-width: 0; width: 100%; font-size: 15px; height: auto; min-height: 60px; padding: 12px 16px; }
  .zsc-renew .cta-flag { font-size: 10px; padding: 3px 10px; top: -10px; }

  /* LOGOS (record section) - SP */
  .zsc-renew .logos { padding: 40px 0; background: #fff; }
  .zsc-renew .logos-inner { gap: 40px; padding: 0; max-width: 100%; width: 100%; }
  .zsc-renew .logos-title-area { gap: 10px; text-align: center; }
  .zsc-renew .logos-title {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 20px;
    font-weight: 400;
    color: #000;
    line-height: 1;
    letter-spacing: 0;
  }
  .zsc-renew .logos-sub {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #000;
    line-height: 1;
    letter-spacing: 0;
  }
  .zsc-renew .logos-marquee {
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
  }
  .zsc-renew .logos-list { gap: 40px; padding-left: 40px; align-items: center; }
  .zsc-renew .logos-list img {
    height: auto;
    max-height: 17px;
    width: auto;
    object-fit: contain;
  }

  /* SECTIONS */
  .zsc-renew .worries, .zsc-renew .checklist, .zsc-renew .features, .zsc-renew .benefits, .zsc-renew .reasons, .zsc-renew .plan, .zsc-renew .comparison,
  .zsc-renew .consulting, .zsc-renew .track, .zsc-renew .flow, .zsc-renew .use-cases, .zsc-renew .faq, .zsc-renew .bcta { padding: 50px 0; }

  .zsc-renew .sec-title { font-size: 32px; line-height: 1.3; margin-bottom: 28px; letter-spacing: 0; color: #1B5DAA; }
  .zsc-renew .t-orange-xl, .zsc-renew .t-blue-xl { font-size: 1.3em; }
  .zsc-renew .t-orange-xl { color: #FFAE00 !important; }
  .zsc-renew .sec-title .num4 { font-size: 72px; line-height: 1; }
  .zsc-renew .tsuno-koto-tsu, .zsc-renew .tsuno-koto-nokoto { font-size: 56px; line-height: 1; }
  .zsc-renew .hl-yellow.dotted-yellow > span { padding-top: 0.25em; }

  /* CHECKLIST title - match Figma SP design (4 lines, mixed sizes) */
  .zsc-renew .checklist { padding: 60px 0 80px; background: #fff; }
  .zsc-renew .checklist .container { gap: 40px; }
  .zsc-renew .checklist .eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 1;
    margin: 0;
  }
  .zsc-renew .checklist .eyebrow.dotted-eyebrow::before,
  .zsc-renew .checklist .eyebrow.dotted-eyebrow::after { display: none; }

  .zsc-renew .checklist .sec-title.check-title {
    width: 350px;
    max-width: 100%;
    text-align: center;
    line-height: 1;
    letter-spacing: 0;
    word-break: keep-all;
    color: #1B5DAA;
    gap: 0;
    margin: 0;
  }
  .zsc-renew .checklist .sec-title.check-title .ct-line {
    display: block;
    text-align: center;
  }
  .zsc-renew .checklist .sec-title.check-title .ct-sm { font-size: 32px; font-weight: 700; line-height: 64px; }
  .zsc-renew .checklist .sec-title.check-title .ct-lg { font-size: 48px; font-weight: 700; line-height: 64px; }
  .zsc-renew .checklist .sec-title.check-title .ct-lg.t-orange-bold {
    font-size: 56px;
    color: #FFAE00;
    display: inline-block;
  }
  /* First line "自社の" — make it its own line with tighter leading */
  .zsc-renew .checklist .sec-title.check-title .ct-line:first-child .ct-sm:first-child {
    display: block;
    line-height: 1;
    padding: 0;
    margin: 0 0 8px;
  }
  /* Last "みてください" with leading 50 */
  .zsc-renew .checklist .sec-title.check-title .ct-sm.ct-sm-tail {
    line-height: 50px;
  }
  /* Dots above each character of 在庫管理状況 */
  .zsc-renew .checklist .sec-title.check-title .ct-lg.ct-dotted {
    display: inline-flex;
    align-items: baseline;
    position: relative;
  }
  .zsc-renew .checklist .sec-title.check-title .ct-lg.ct-dotted > span {
    display: inline-block;
    position: relative;
    padding-top: 10px;
    line-height: 1;
  }
  .zsc-renew .checklist .sec-title.check-title .ct-lg.ct-dotted > span::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #FFAE00;
  }
  /* Remove the wavy underline */
  .zsc-renew .checklist .sec-title.check-title .ct-lg.ct-dotted::after { display: none; }

  /* WORRIES - match Figma SP design */
  .zsc-renew .worries { padding: 40px 0; background: #F7F6F2; }
  .zsc-renew .worries .container { gap: 30px; padding: 0; }
  .zsc-renew .worries .eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    margin-bottom: 0;
    letter-spacing: 0;
    line-height: 1;
  }
  .zsc-renew .worries .eyebrow.dotted-eyebrow::before,
  .zsc-renew .worries .eyebrow.dotted-eyebrow::after { display: none; }

  .zsc-renew .worries .sec-title,
  .zsc-renew .sec-title.sec-title-mixed {
    font-size: 56px;
    line-height: 1;
    color: #1B5DAA;
    gap: 0;
    margin: 0;
    width: 336px;
    max-width: 100%;
    text-align: left;
    align-items: flex-start;
  }
  .zsc-renew .worries .sec-title br { display: none; }
  .zsc-renew .worries .sec-title .t-big {
    font-size: 56px;
    line-height: 1;
    color: #1B5DAA;
    font-weight: 700;
    text-align: center;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  .zsc-renew .worries .sec-title .t-blue.dotted {
    font-size: 1em;
    color: #1B5DAA;
    display: inline;
  }
  .zsc-renew .worries .sec-title .t-blue.dotted > span {
    padding-top: 0;
  }
  .zsc-renew .worries .sec-title .t-blue.dotted > span::before { display: none; }
  .zsc-renew .worries .sec-title .hl-ga {
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    letter-spacing: 0;
    vertical-align: baseline;
  }
  .zsc-renew .worries .sec-title .t-small {
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 2;
    text-align: center;
    display: block;
    width: 100%;
  }

  .zsc-renew .eyebrow-badge { width: 130px; margin-bottom: 8px; }

  /* WORRIES card list - 2 cols, 170x272 white cards */
  .zsc-renew .worry-grid {
    display: flex;
    flex-wrap: wrap;
    grid-template-columns: none;
    gap: 10px;
    width: 350px;
    max-width: calc(100vw - 24px);
    padding: 0;
    margin: 0 auto;
    justify-content: center;
  }
  .zsc-renew .worry-card {
    width: 170px;
    height: 272px;
    box-sizing: border-box;
    padding: 20px;
    gap: 15px;
    background: #fff;
    border: 1px solid #1B5DAA;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
  }
  .zsc-renew .worry-illust {
    width: 106px;
    height: 94px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
  }
  .zsc-renew .worry-illust img {
    width: 100%;
    height: 100%;
    max-width: 106px;
    max-height: 94px;
    object-fit: contain;
  }
  .zsc-renew .worry-card h3 {
    font-size: 18px;
    font-weight: 400;
    color: #C7332F;
    line-height: 22px;
    margin: 0;
    text-align: center;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .zsc-renew .worry-card h3 .emp {
    display: inline-block;
    width: 150px;
    max-width: none;
    font-size: 20px;
    font-weight: 700;
    color: #C7332F;
    white-space: nowrap;
  }
  .zsc-renew .worry-card h3 .br-sp { display: block; height: 0; }
  /* Card 3: "Excelが限界" + "に" on the same line, then break before "きている" */
  .zsc-renew .worry-card:nth-child(3) h3 {
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
  }
  .zsc-renew .worry-card:nth-child(3) h3 .emp {
    display: inline;
    width: auto;
    font-size: 18px;
    white-space: normal;
  }
  /* Card 6: keep title on 1 line, shift down so <p> aligns with 2-line cards */
  .zsc-renew .worry-card:nth-child(6) h3 {
    padding-top: 15px;
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
  }
  .zsc-renew .worry-card:nth-child(6) h3 .emp {
    display: inline;
    width: auto;
    font-size: 18px;
    white-space: normal;
  }
  .zsc-renew .worry-card p,
  .zsc-renew .worry-card:nth-child(1) p,
  .zsc-renew .worry-card:nth-child(2) p,
  .zsc-renew .worry-card:nth-child(3) p,
  .zsc-renew .worry-card:nth-child(4) p,
  .zsc-renew .worry-card:nth-child(5) p,
  .zsc-renew .worry-card:nth-child(6) p {
    width: 150px;
    max-width: none;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
    text-align: center;
    color: #000;
   
  }
  .zsc-renew .worry-card:nth-child(6) p{
    padding-top: 10px;
  }

  /* WORRIES "問題は…仕組み…" message */
  .zsc-renew .worry-msg {
    width: 350px;
    max-width: calc(100vw - 24px);
    text-align: center;
    font-size: 24px;
    font-weight: 400;
    line-height: 2;
    color: #000;
    margin: 0 auto;
    letter-spacing: 0;
  }
  .zsc-renew .worry-msg .t-red {
    font-size: 48px;
    font-weight: 700;
    color: #C7332F;
    line-height: 1.04;
  }
  .zsc-renew .t-red { font-size: 1.3em; }

  /* WORRIES dot divider - vertical */
  .zsc-renew .dot-divider {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    width: 5px;
    margin: 0 auto;
  }
  .zsc-renew .dot-divider span {
    width: 5px;
    height: 5px;
    background: #B1D3D5;
    opacity: 1;
  }

  /* CAUSES - title bar */
  .zsc-renew .causes {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    gap: 0;
    align-items: center;
  }
  .zsc-renew .causes-bar {
    width: 350px;
    max-width: calc(100vw - 24px);
    height: 141px;
    padding: 0 20px;
    background: #1B5DAA;
    border: none;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    box-sizing: border-box;
  }
  .zsc-renew .causes-bar::before,
  .zsc-renew .causes-bar::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: #fff;
  }
  .zsc-renew .causes-bar::before { top: 7px; bottom: auto; }
  .zsc-renew .causes-bar::after { bottom: 5px; top: auto; }
  .zsc-renew .causes-bar .dot { display: none; }
  .zsc-renew .causes-bar h3 {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    font-size: 32px;
    line-height: 48px;
    letter-spacing: 0;
    margin: 0;
    gap: 0;
    text-align: center;
    font-weight: 700;
  }
  .zsc-renew .causes-bar h3 .t-cause {
    display: block;
    font-size: 60px;
    line-height: 70px;
    margin-top: 0;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0;
  }

  /* CAUSES - 4 cards stacked vertically with descending blue tints */
  .zsc-renew .cause-wrap {
    width: 100%;
    max-width: 100%;
    padding: 0;
    border-radius: 0;
    overflow: visible;
  }
  .zsc-renew .cause-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    row-gap: 0;
    padding: 0;
    margin: 0 auto;
    width: 350px;
    max-width: calc(100vw - 24px);
    min-height: 0;
    background-image: url("../images/cause.png");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center top;
    grid-template-columns: none;
    grid-template-areas: none;
  }
  .zsc-renew .cause-steps li {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    min-height: 110px;
    padding: 14px 20px 18px;
    margin: 0;
    border-radius: 0;
    clip-path: none;
    overflow: visible;
    background: transparent;
    grid-template-columns: none;
    grid-template-areas: none;
    box-sizing: border-box;
  }
  .zsc-renew .cause-steps li:nth-child(1),
  .zsc-renew .cause-steps li:nth-child(2),
  .zsc-renew .cause-steps li:nth-child(3),
  .zsc-renew .cause-steps li:nth-child(4) { background: transparent; }
  .zsc-renew .cause-steps li::after { display: none; }

  /* cs-body becomes "transparent" so h4/p are direct children of li */
  .zsc-renew .cause-steps .cs-body {
    display: contents;
    grid-area: auto;
    padding: 0;
    background: transparent;
  }
  .zsc-renew .cause-steps li:nth-child(1) .cs-body,
  .zsc-renew .cause-steps li:nth-child(2) .cs-body,
  .zsc-renew .cause-steps li:nth-child(3) .cs-body,
  .zsc-renew .cause-steps li:nth-child(4) .cs-body { padding: 0; }

  .zsc-renew .cause-steps .cs-num {
    position: static;
    grid-area: auto;
    display: inline-block;
    vertical-align: middle;
    font-size: 64px;
    font-weight: 700;
    color: #9AB1C9;
    text-shadow: 5px 5px 0 #fff;
    line-height: 1;
    letter-spacing: 0;
    margin: 0;
    transform: none;
  }
  .zsc-renew .cause-steps li:nth-child(1) .cs-num,
  .zsc-renew .cause-steps li:nth-child(2) .cs-num,
  .zsc-renew .cause-steps li:nth-child(3) .cs-num,
  .zsc-renew .cause-steps li:nth-child(4) .cs-num { left: auto; }

  .zsc-renew .cause-steps li > .cs-body > h4 {
    grid-area: auto;
    display: inline-block;
    vertical-align: middle;
    font-size: 28px;
    font-weight: 700;
    color: #000;
    border: none;
    padding: 0;
    margin: 0 0 0 10px;
    width: auto;
    line-height: 1;
    letter-spacing: 0;
  }
  .zsc-renew .cause-steps li > .cs-body > p {
    grid-area: auto;
    display: block !important;
    font-size: 16px;
    line-height: 30px;
    font-weight: 400;
    color: #000;
    margin: 22px 0 0;
    padding: 0;
    width: 256px;
    max-width: 100%;
  }
  .zsc-renew .cause-steps li > .cs-body > p br { display: none; }
  .zsc-renew .cause-steps strong { font-weight: 700; }

  .zsc-renew .cause-steps .cs-illust {
    position: absolute;
    top: 14px;
    right: 7px;
    left: auto;
    bottom: auto;
    width: 86px;
    height: 86px;
    margin: 0;
    grid-area: auto;
    transform: none;
    align-self: auto;
    justify-self: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
  }
  .zsc-renew .cause-steps li:nth-child(4) .cs-illust { top: 17px; }
  .zsc-renew .cause-steps .cs-illust img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }
  .zsc-renew .big-arrow { height: 50px; }

  /* CHECKLIST - match Figma SP design */
  .zsc-renew .check-sub {
    width: 340px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    font-size: 20px;
    font-weight: 400;
    color: #000;
    text-align: center;
    line-height: 48px;
  }
  .zsc-renew .check-row {
    display: block;
    position: relative;
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    padding: 0;
  }
  /* SP: hide left illustration, show worker (right) on top of checklist box */
  .zsc-renew .check-illust-left,
  .zsc-renew .check-illust.check-illust-left { display: none !important; }
  .zsc-renew .check-illust.check-illust-right {
    position: absolute !important;
    top: -8px !important;
    right: 13px !important;
    left: auto !important;
    bottom: auto !important;
    width: 72px !important;
    height: 124px !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 2;
    display: block !important;
    align-items: initial !important;
    justify-content: initial !important;
    transform: none !important;
    pointer-events: none;
  }
  .zsc-renew .check-illust.check-illust-right img {
    width: 72px;
    height: 124px;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
  }
  .zsc-renew .check-list {
    background: #F2F8FC;
    border-radius: 0;
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    padding: 40px 20px;
    box-shadow: 5px 4px 4px 0 #96B4C8;
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: auto;
    justify-content: flex-start;
  }
  .zsc-renew .check-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 0 6px;
    border-bottom: 1px solid #736059;
    width: 100%;
    box-sizing: border-box;
  }
  .zsc-renew .check-list .cb {
    display: inline-block;
    width: 19px;
    height: 18px;
    background: #fff;
    border: 1px solid #736059;
    border-radius: 0;
    flex-shrink: 0;
  }
  .zsc-renew .check-list .cl-text {
    line-height: 48px;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
  }
  .zsc-renew .check-list .cl-sm { font-size: 16px; font-weight: 400; }
  .zsc-renew .check-list li strong { font-size: 20px; font-weight: 700; }

  /* check-down triangle pointing down to result text */
  .zsc-renew .check-down {
    width: 0;
    height: 0;
    margin: 16px auto 14px;
    border-left: 41px solid transparent;
    border-right: 41px solid transparent;
    border-top: 36px solid #1B5DAA;
  }

  /* CHECK RESULT */
  .zsc-renew .check-result {
    text-align: center;
    color: #000;
    font-weight: 400;
    line-height: 43px;
    margin: 0;
    width: 340px;
    max-width: calc(100vw - 24px);
    margin-left: auto;
    margin-right: auto;
  }
  .zsc-renew .check-result .cr-line { display: block; }
  .zsc-renew .check-result .cr-num-big { font-size: 48px; font-weight: 700; color: #1B5DAA; line-height: 43px; }
  .zsc-renew .check-result .cr-num-mid { font-size: 32px; font-weight: 700; color: #1B5DAA; line-height: 43px; }
  .zsc-renew .check-result .cr-tail { font-size: 24px; line-height: 43px; }
  .zsc-renew .check-result .cr-em { font-weight: 500; font-size: 24px; line-height: 43px; }
  .zsc-renew .check-result .cr-line:nth-child(2) > span:not(.cr-em) { font-size: 24px; line-height: 43px; }

  /* CHECK CTA MSG */
  .zsc-renew .check-cta-msg {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin: 0 auto;
    padding: 20px 0;
    color: #000;
    width: 350px;
    max-width: calc(100vw - 24px);
    gap: 0;
    line-height: 49px;
    letter-spacing: 2.52px;
  }
  .zsc-renew .check-cta-msg .ccm-line {
    display: block;
    line-height: 49px;
    position: relative;
    align-items: initial;
  }
  /* Replace the desktop full-width orange bar with a marker-style background on the inner spans */
  .zsc-renew .check-cta-msg .ccm-line::before { display: none; }
  .zsc-renew .check-cta-msg .ccm-line-1,
  .zsc-renew .check-cta-msg .ccm-line-2 > .ccm-med {
    display: inline-block;
    background: linear-gradient(transparent 60%, rgba(255, 176, 0, 0.33) 60%, rgba(255, 176, 0, 0.33) 85%, transparent 85%);
  }
  .zsc-renew .check-cta-msg .ccm-line-1 > span {
    display: inline;
  }
  .zsc-renew .check-cta-msg .ccm-lg { font-size: 36px; font-weight: 400; line-height: 49px; }
  .zsc-renew .check-cta-msg .ccm-sm { font-size: 24px; font-weight: 400; line-height: 49px; letter-spacing: 1.68px; }
  .zsc-renew .check-cta-msg .ccm-med { font-weight: 500; letter-spacing: 2.52px; }
  .zsc-renew .check-cta-msg .ccm-line-1 { letter-spacing: 2.52px; }
  .zsc-renew .check-cta-msg .ccm-line-2 { letter-spacing: 2.52px; }

  /* CTA BUTTON */
  .zsc-renew .btn { padding: 14px 24px; font-size: 14px; width: 100%; }
  .zsc-renew .btn-primary { font-size: 18px; }
  .zsc-renew .btn-check {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 350px;
    max-width: calc(100vw - 24px);
    height: 69px;
    min-height: 69px;
    padding: 0;
    gap: 0;
    font-size: 20px;
    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    font-weight: 700;
    border-radius: 6px;
    box-shadow: 0 4px 2px rgba(0, 0, 0, 0.25);
    margin: 0 auto;
    position: relative;
  }
  .zsc-renew .btn-check .btn-check-text {
    font-size: 20px;
    font-weight: 700;
    text-align: center;
  }
  .zsc-renew .btn-check .btn-check-arrow {
    width: 17px;
    height: 29px;
    position: absolute;
    right: 17px;
    top: 50%;
    transform: translateY(-50%);
  }

  /* FEATURES - match Figma SP design */
  .zsc-renew .features {
    padding: 120px 0 88px;
    background-color: #fff;
    background-image: url('../images/features_bgsp.png');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
  }
  .zsc-renew .features .container { gap: 64px; padding: 0; }
  .zsc-renew .features-title-area {
    gap: 20px;
    max-width: 100%;
    width: 100%;
    align-items: center;
    text-align: center;
  }
  .zsc-renew .features-logo {
    width: 180px;
    height: 40px;
    object-fit: contain;
    margin: 0 auto;
  }
  .zsc-renew .features .features-eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 1;
    margin: 0;
    letter-spacing: 0;
  }
  .zsc-renew .features .sec-title.features-title {
    width: 336px;
    max-width: 100%;
    gap: 5px;
    align-items: center;
    text-align: center;
    color: #1B5DAA;
    line-height: 1;
    margin: 0;
  }
  .zsc-renew .features-title .ft-small {
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 73px;
    width: 100%;
    text-align: center;
  }
  .zsc-renew .features-title .ft-big {
    font-size: 56px;
    font-weight: 700;
    color: #FFAE00;
    line-height: 73px;
    letter-spacing: 14px;
    text-indent: 14px;
    text-align: center;
    width: 100%;
  }

  /* feature cards stacked vertically */
  .zsc-renew .feature-cards {
    flex-direction: column;
    gap: 72px;
    align-items: center;
    padding: 0;
    width: 100%;
    max-width: 100%;
  }
  .zsc-renew .feature-card {
    width: 320px;
    max-width: calc(100vw - 24px);
    gap: 15px;
    flex: 0 0 auto;
    padding: 0;
  }
  .zsc-renew .fc-head {
    position: relative;
    padding-top: 0;
    width: 320px;
    max-width: 100%;
    height: 47px;
  }
  .zsc-renew .fc-features {
    position: absolute;
    top: -30px;
    left: -48px;
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    color: rgba(27, 93, 170, 0.32);
    line-height: 1;
    letter-spacing: 0;
    width: 320px;
    text-align: left;
    padding-left: 62px;
  }
  .zsc-renew .fc-label {
    width: 320px;
    max-width: 100%;
    height: 47px;
    min-height: 47px;
    border-radius: 10px;
    background: #1B5DAA;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 0;
  }
  .zsc-renew .feature-card .fc-no {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 32px;
    font-weight: 400;
    color: #fff;
    line-height: 29px;
    letter-spacing: 0;
  }
  .zsc-renew .fc-label-text {
    font-size: 28px;
    line-height: 30px;
    font-weight: 500;
    display: inline-flex;
    align-items: baseline;
  }
  .zsc-renew .fc-name { color: #FFAE00; font-weight: 700; font-size: 28px; }
  .zsc-renew .fc-suffix { color: #fff; font-weight: 500; font-size: 28px; }

  .zsc-renew .fc-photo {
    width: 320px;
    max-width: 100%;
    height: 240px;
    border: 5px solid #1B5DAA;
    border-radius: 30px;
    box-sizing: border-box;
    margin: 0;
    overflow: hidden;
  }
  .zsc-renew .fc-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .zsc-renew .fc-photo-contain {
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    margin: 0;
  }
  .zsc-renew .fc-photo-contain img {
    width: auto;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .zsc-renew .fc-desc {
    width: 320px;
    max-width: 100%;
    font-size: 18px;
    color: #000;
    line-height: 30px;
    font-weight: 400;
    padding: 0;
    margin: 0;
    min-width: 0;
  }
  .zsc-renew .fc-desc strong {
    font-size: 20px;
    font-weight: 700;
    color: #000;
  }
  /* Card 3 description: base text is 16px per Figma */
  .zsc-renew .feature-card:nth-child(3) .fc-desc { font-size: 16px; width: 320px; }
  .zsc-renew .feature-card:nth-child(3) .fc-desc strong { font-size: 20px; }

  /* BENEFITS - match Figma SP design */
  .zsc-renew .benefits {
    padding: 120px 0 80px;
    background: #fff;
  }
  .zsc-renew .benefits .container { gap: 40px; padding: 0; }

  /* Title area */
  .zsc-renew .benefits-title-area {
    gap: 0;
    max-width: 100%;
    width: 350px;
    align-items: center;
    text-align: center;
    margin: 0 auto;
  }
  .zsc-renew .benefits-logo {
    width: 180px;
    height: 40px;
    object-fit: contain;
    margin: 0 auto 0;
  }
  .zsc-renew .benefits .benefits-eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 1;
    margin: 0;
    letter-spacing: 0;
    text-align: center;
  }
  .zsc-renew .benefits .sec-title.benefits-title {
    display: block;
    width: 350px;
    max-width: 100%;
    gap: 0;
    text-align: center;
    color: #1B5DAA;
    margin: 0;
    line-height: 1;
    padding-top: 17px;
  }
  .zsc-renew .benefits-title .bt-line {
    display: inline;
    align-items: initial;
    text-align: center;
    white-space: nowrap;
  }
  .zsc-renew .benefits-title .bt-small {
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 53px;
  }
  .zsc-renew .benefits-title .bt-big {
    font-size: 56px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 70px;
  }
  .zsc-renew .benefits-title .bt-num4 {
    font-size: 72px;
    font-weight: 700;
    color: #FFAE00;
    line-height: 70px;
  }
  .zsc-renew .benefits-title .bt-tsu {
    font-size: 56px;
    font-weight: 700;
    color: #FFAE00;
    line-height: 70px;
  }
  /* "のこと" on the last line should match the 56px size of 4 / つ */
  .zsc-renew .benefits-title .bt-line:last-child .bt-small {
    font-size: 56px;
    line-height: 70px;
  }

  /* benefit cards: 4 single-column items stacked vertically with bottom border */
  .zsc-renew .benefit-zigzag {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    padding: 0;
  }
  .zsc-renew .bz-row,
  .zsc-renew .bz-row-rev {
    display: contents;
  }
  .zsc-renew .bz-row-rev { margin-top: 0; }
  /* Hide PC zigzag photos on SP */
  .zsc-renew .bz-col-photo { display: none; }
  .zsc-renew .bz-col-text {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    max-width: 100%;
  }
  .zsc-renew .bz-card {
    width: 100%;
    padding: 20px 0;
    border-bottom: 1px solid #D9D9D9;
    gap: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: transparent;
  }
  .zsc-renew .bz-col-text > .bz-card:last-child { border-bottom: 1px solid #D9D9D9; }

  /* bz-head: circle on top, h3 row below — flex column */
  .zsc-renew .bz-head {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    border-bottom: none;
    padding: 0;
    width: 100%;
  }
  .zsc-renew .bz-head::after { display: none; }

  /* Circle: 76×76 white with shadow */
  .zsc-renew .bz-num {
    width: 76px;
    height: 76px;
    border-radius: 38px;
    background: #fff;
    box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
  }
  .zsc-renew .bz-num-eyebrow {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #1B5DAA;
    line-height: 33px;
    letter-spacing: 0;
  }
  .zsc-renew .bz-num-no {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 36px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 33px;
    letter-spacing: 0;
    margin-top: -4px;
  }

  /* h3 row: text + icon image horizontal, centered */
  .zsc-renew .bz-card h3 {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 350px;
    max-width: 100%;
    height: 58px;
    margin: 0;
    flex: 0 0 auto;
    font-size: 24px;
    color: #1B5DAA;
    line-height: 53px;
    text-align: center;
  }
  .zsc-renew .bz-h3-text {
    display: inline-flex;
    align-items: baseline;
    white-space: nowrap;
  }
  .zsc-renew .bz-prefix {
    font-size: 24px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 53px;
  }
  .zsc-renew .bz-card .emp-orange {
    font-size: 40px;
    font-weight: 700;
    color: #FFAE00;
    line-height: 53px;
  }
  .zsc-renew .bz-card h3 .bz-icon {
    width: 46px;
    height: 53px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .zsc-renew .bz-icon img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }
  /* Benefit 01 icon: nudge up 3px */
  .zsc-renew .bz-icon img[src*="862a553"] {
    transform: translateY(-3px);
  }

  /* Description paragraph */
  .zsc-renew .bz-card p {
    width: 350px !important;
    max-width: 100%;
    font-size: 20px;
    line-height: 32px;
    color: #000;
    font-weight: 400;
    margin: 0;
    padding: 0;
    text-align: left;
  }
  .zsc-renew .bz-card p strong { font-weight: 700; color: #000; }

  /* Bottom image */
  .zsc-renew .benefits-foot-img {
    display: block;
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    overflow: hidden;
  }
  .zsc-renew .benefits-foot-img img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0;
  }

  /* REASONS - match Figma SP design */
  .zsc-renew .reasons {
    padding: 120px 0;
    background: #F7F6EF;
  }
  .zsc-renew .reasons .container { gap: 80px; padding: 0; }

  /* Title area */
  .zsc-renew .reasons-title-area {
    gap: 20px;
    max-width: 100%;
    width: 336px;
    align-items: center;
    text-align: center;
    margin: 0 auto;
  }
  .zsc-renew .reasons-logo {
    width: 180px;
    height: 40px;
    object-fit: contain;
    margin: 0 auto;
  }
  .zsc-renew .reasons .reasons-eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 1;
    margin: 0;
    letter-spacing: 0;
    text-align: center;
  }
  .zsc-renew .reasons .sec-title.reasons-title {
    display: flex;
    flex-direction: column;
    width: 336px;
    max-width: 100%;
    gap: 5px;
    align-items: center;
    text-align: center;
    color: #1B5DAA;
    margin: 0;
    line-height: 1;
  }
  .zsc-renew .reasons-title .rt-line {
    display: block;
    text-align: center;
    width: 100%;
  }
  .zsc-renew .reasons-title .rt-small {
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 53px;
  }
  .zsc-renew .reasons-title .rt-big {
    font-size: 56px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 92px;
  }
  .zsc-renew .reasons-title .rt-orange { color: #FFAE00; }

  /* Card container */
  .zsc-renew .reasons-box {
    background: transparent;
    padding: 0;
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
  }
  .zsc-renew .reason-grid {
    display: flex;
    flex-direction: column;
    gap: 40px;
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
  }

  /* Each card: white box with grid layout */
  .zsc-renew .reason-card {
    display: grid;
    grid-template-columns: 22px 318px;
    grid-template-rows: auto auto auto auto;
    grid-template-areas:
      "sidebar number"
      "sidebar photo"
      "title    title"
      "desc     desc";
    column-gap: 10px;
    row-gap: 11px;
    width: 350px;
    max-width: 100%;
    padding: 20px 0;
    background: #fff;
    align-items: start;
    justify-content: start;
  }
  .zsc-renew .reason-card::before { display: none; }

  /* Sidebar with vertical "Reasons" text and line */
  .zsc-renew .rc-sidebar {
    grid-area: sidebar;
    width: 22px;
    height: 270px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 0;
    padding-left: 5px;
    box-sizing: border-box;
  }
  .zsc-renew .rc-sidebar-text {
    font-family: "Petrona", serif;
    font-size: 24px;
    font-weight: 400;
    color: #1B5DAA;
    letter-spacing: 1.2px;
    line-height: 35px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    height: 100px;
    width: auto;
  }
  .zsc-renew .rc-sidebar-line {
    width: 1px;
    height: 167px;
    background: #1B5DAA;
    margin-top: 3px;
  }

  /* rc-content uses display: contents so its children become grid items */
  .zsc-renew .rc-content {
    display: contents;
  }
  .zsc-renew .rc-no {
    grid-area: number;
    display: block;
    font-family: "Petrona", serif;
    font-size: 64px;
    font-weight: 400;
    color: #1B5DAA;
    line-height: 35px;
    letter-spacing: 3.2px;
    text-shadow: 5px 5px 0 #fff;
    margin: 0;
    padding-top: 0;
    width: 100%;
  }
  .zsc-renew .rc-photo {
    grid-area: photo;
    width: 300px;
    height: 220px;
    overflow: hidden;
    margin: 0;
    aspect-ratio: auto;
    border-radius: 0;
  }
  .zsc-renew .rc-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    max-width: 100%;
    max-height: 100%;
  }
  .zsc-renew .rc-photo-contain { background: #fff; }
  .zsc-renew .rc-photo-contain img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%;
  }

  /* Title bar: 320×88, blue bg, orange left border */
  .zsc-renew .rc-title-bar {
    grid-area: title;
    justify-self: center;
    width: 320px;
    max-width: 100%;
    height: 88px;
    background: #1B5DAA;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 10px 30px;
    margin: 0;
    box-sizing: border-box;
    position: relative;
    border-left: none;
  }
  .zsc-renew .rc-title-bar::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 21px;
    background: #FFB000;
  }
  .zsc-renew .reason-card h3 {
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    line-height: 34px;
    margin: 0;
    padding: 0;
    text-align: left;
    letter-spacing: 0;
    white-space: nowrap;
  }
  /* Reason 05: 「スマホ/ハンディで現場から」 fits on one line */
  .zsc-renew .reason-card:nth-child(5) h3 {
    letter-spacing: -0.5px;
  }

  /* Description */
  .zsc-renew .rc-desc {
    grid-area: desc;
    justify-self: center;
    width: 320px;
    max-width: 100%;
    font-size: 16px;
    color: #000;
    line-height: 30px;
    font-weight: 400;
    margin: 0;
    padding: 0;
    text-align: left;
  }
  .zsc-renew .rc-desc strong { font-weight: 700; color: #000; }

  /* PLAN - match Figma SP design */
  .zsc-renew .plan {
    padding: 120px 0;
    background: #fff;
  }
  .zsc-renew .plan .container { gap: 40px; padding: 0; }

  /* Title area */
  .zsc-renew .plan-title-area {
    gap: 20px;
    max-width: 100%;
    width: 350px;
    align-items: center;
    text-align: center;
    margin: 0 auto;
  }
  .zsc-renew .plan-logo {
    width: 180px;
    height: 40px;
    object-fit: contain;
    margin: 0 auto;
  }
  .zsc-renew .plan .plan-eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 1;
    margin: 0;
    letter-spacing: 0;
    text-align: center;
  }
  .zsc-renew .plan .sec-title.plan-title {
    display: flex;
    flex-direction: column;
    width: 336px;
    max-width: 100%;
    gap: 5px;
    align-items: center;
    text-align: center;
    color: #1B5DAA;
    margin: 0;
    line-height: 1;
  }
  .zsc-renew .plan-title .pt-line {
    display: block;
    text-align: center;
    width: 100%;
  }
  .zsc-renew .plan-title .pt-small {
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 56px;
  }
  .zsc-renew .plan-title .pt-big {
    font-size: 56px;
    font-weight: 700;
    color: #FFAE00;
    line-height: 76px;
  }
  .zsc-renew .plan-lead {
    font-size: 20px;
    font-weight: 400;
    color: #000;
    line-height: 31px;
    margin: 0;
    text-align: center;
    letter-spacing: 0;
    white-space: normal;
    width: 350px;
    max-width: 100%;
  }

  /* Card list */
  .zsc-renew .plan-cards {
    flex-direction: column;
    gap: 20px;
    width: 100%;
    max-width: 100%;
    padding: 0 0 10px;
    align-items: center;
    margin: 0;
  }

  /* Each plan card */
  .zsc-renew .plan-card {
    position: relative;
    width: 350px;
    max-width: calc(100vw - 24px);
    padding: 0;
    gap: 12px;
    align-items: center;
    background: transparent;
    filter: none;
  }

  /* "Need" target bar at top */
  .zsc-renew .pc-need {
    width: 350px;
    max-width: 100%;
    font-size: 32px;
    font-weight: 700;
    color: #fff;
    line-height: 35px;
    padding: 10px;
    margin: 0;
    border-radius: 4px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
  }

  /* Arrow indicator pointing down: absolutely positioned over pc-need / body seam */
  .zsc-renew .pc-arrow {
    position: absolute;
    top: 84px;
    left: 50%;
    transform: translateX(-50%);
    width: 127px;
    height: 18px;
    margin: 0;
    z-index: 2;
    pointer-events: none;
  }
  .zsc-renew .pc-arrow::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 63.5px solid transparent;
    border-right: 63.5px solid transparent;
    border-top: 18px solid currentColor;
  }

  /* Body card */
  .zsc-renew .plan-card-body {
    width: 350px;
    max-width: 100%;
    background: #fff;
    border-left: 1px solid #DCDCDC;
    border-right: 1px solid #DCDCDC;
    border-bottom: 1px solid #DCDCDC;
    border-top: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 0 0 20px;
    box-sizing: border-box;
    position: relative;
  }

  /* Plan name (棚卸 エディション etc.) */
  .zsc-renew .pc-name {
    border-bottom-width: 3px;
    border-bottom-style: solid;
    padding: 10px;
    margin: 0;
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
  }
  .zsc-renew .pc-name-lg { font-size: 36px; font-weight: 700; line-height: 56px; }
  .zsc-renew .pc-name-sm { font-size: 24px; font-weight: 700; line-height: 56px; }

  /* Pro card extra label */
  .zsc-renew .pc-name-sub {
    position: absolute;
    top: 78px;
    right: 10px;
    font-size: 18px;
    font-weight: 500;
    color: #11B4C6;
    line-height: 38px;
    margin: 0;
    padding: 0;
    text-align: center;
    white-space: nowrap;
  }

  /* Price block */
  .zsc-renew .pc-price-block { width: 100%; align-items: center; }
  .zsc-renew .pc-price { line-height: 56px; }
  .zsc-renew .pc-price .num { font-size: 96px; line-height: 56px; }
  .zsc-renew .pc-price .unit { font-size: 20px; font-weight: 500; line-height: 56px; }
  .zsc-renew .pc-meta-1 { font-size: 20px; line-height: 47px; }
  .zsc-renew .pc-meta-2 { font-size: 20px; line-height: 38px; }

  /* Feature list: left-aligned text, centered as a block within the card */
  .zsc-renew .pc-features {
    display: block;
    font-size: 20px;
    line-height: 38px;
    text-align: left;
    width: max-content;
    max-width: 100%;
    margin: 0 auto;
  }

  /* Detail button */
  .zsc-renew .pc-btn {
    width: 230px;
    height: 40px;
    padding: 10px 34px 10px 56px;
    font-size: 24px;
    font-weight: 700;
    line-height: 20px;
    border-radius: 10px;
    filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
    box-sizing: border-box;
  }
  .zsc-renew .plan-notes {
    align-self: flex-end;
    text-align: left;
    width: 279px;
    max-width: calc(100vw - 24px);
    margin: 0 20px 0 auto;
    padding: 0;
    font-size: 14px;
    line-height: 20px;
    gap: 0;
    color: #000;
    font-weight: 400;
  }
  .zsc-renew .plan-notes li { line-height: 20px; }

  /* COMPARISON - match Figma SP design */
  .zsc-renew .comparison {
    padding: 120px 0;
    background: #F2F8FC;
  }
  .zsc-renew .comparison .container { gap: 0; padding: 0; }

  /* Title area */
  .zsc-renew .comparison-title-area {
    gap: 22px;
    width: 100%;
    max-width: 100%;
    align-items: center;
    text-align: center;
    margin: 0 auto;
  }
  .zsc-renew .comparison-logo {
    width: 180px;
    height: 40px;
    object-fit: contain;
    margin: 0 auto;
  }
  .zsc-renew .comparison .comparison-eyebrow {
    font-size: 20px;
    font-weight: 400;
    color: #FFAE00;
    line-height: 1;
    margin: 0;
    letter-spacing: 0;
    text-align: center;
  }
  .zsc-renew .comparison .sec-title.comparison-title {
    display: flex;
    flex-direction: column;
    width: 390px;
    max-width: 100%;
    gap: 0;
    align-items: center;
    text-align: center;
    color: #1B5DAA;
    margin: 0;
    line-height: 1;
  }
  .zsc-renew .comparison-title .ct-line {
    display: block;
    align-items: initial;
    text-align: center;
    width: 100%;
  }
  .zsc-renew .comparison-title .ct-mixed {
    display: block;
    align-items: initial;
    text-align: center;
    width: 100%;
  }
  .zsc-renew .comparison-title .ct-small .ct-small1{
    font-size: 32px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 56px;
  }
  /* Lines 2 and 4 (なぜ, のか！) use leading 49 in Figma */
  .zsc-renew .comparison-title .ct-mixed .ct-small {
    line-height: 49px;
  }
  .zsc-renew .comparison-title .ct-big {
    font-size: 52px;
    font-weight: 700;
    line-height: 64px;
  }
  .zsc-renew .comparison-title .ct-blue { color: #1B5DAA; }
  .zsc-renew .comparison-title .ct-orange { color: #FFB000; }
  .zsc-renew .comparison-title .ct-tight2 { letter-spacing: -23.92px; }
  .zsc-renew .comparison-title .ct-tight2 + .ct-small { margin-left: 0; }

  /* Subtitle */
  .zsc-renew .comp-subtitle {
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    text-align: center;
    line-height: 38px;
    white-space: normal;
  }
  .zsc-renew .comp-subtitle .cs-sm {
    font-size: 20px;
    font-weight: 400;
    line-height: 38px;
  }
  .zsc-renew .comp-subtitle .cs-big {
    font-size: 20px;
    font-weight: 500;
    line-height: 25px;
    position: relative;
    display: inline-block;
    z-index: 0;
  }
  .zsc-renew .comp-subtitle .cs-big::after {
    height: 9px;
    background: rgba(255, 176, 0, 0.33);
  }

  /* Description */
  .zsc-renew .comp-lead {
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 0 auto;
    text-align: left;
    line-height: 31px;
    font-weight: 400;
    color: #000;
  }
  .zsc-renew .comp-lead .cl-sm {
    font-size: 16px;
    font-weight: 400;
    line-height: 31px;
  }
  .zsc-renew .comp-lead .cl-md {
    font-size: 20px;
    font-weight: 500;
    line-height: 31px;
  }

  /* Gap from title area to table */
  .zsc-renew .comp-table-wrap {
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 54px auto 0;
    padding: 40px 0;
    position: relative;
    overflow: visible;
  }
  .zsc-renew .comp-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0;
  }
  .zsc-renew .comp-table colgroup { display: none; }

  /* Header */
  .zsc-renew .comp-table thead tr {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 80px;
  }
  .zsc-renew .comp-table thead .ct-head-blank {
    width: 100px;
    flex: 0 0 100px;
    background: transparent;
    padding: 0;
  }
  .zsc-renew .comp-table thead .ct-head-ours {
    flex: 0 0 125px;
    width: 125px;
    background: #1B5DAA;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    padding: 9px 0;
    line-height: 31px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
  }
  .zsc-renew .comp-table thead .ct-head-other {
    flex: 0 0 125px;
    width: 125px;
    background: transparent;
    color: #000;
    font-size: 16px;
    font-weight: 500;
    line-height: 23px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  /* Body */
  .zsc-renew .comp-table tbody {
    display: block;
    width: 100%;
    background: #FEFEFE;
    filter: drop-shadow(0 4px 2px rgba(205, 205, 205, 0.25));
  }
  .zsc-renew .comp-table tbody tr {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 64px;
    border-bottom: 1px solid #5D5D5D;
  }
  .zsc-renew .comp-table tbody tr:last-child {
    border-bottom: 1px solid #B2B2B2;
  }
  .zsc-renew .comp-table tbody th {
    flex: 0 0 100px;
    width: 100px;
    background: #F3F3F3;
    font-size: 16px;
    font-weight: 400;
    color: #000;
    line-height: 31px;
    padding: 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .zsc-renew .comp-table tbody td {
    flex: 0 0 125px;
    width: 125px;
    font-size: 16px;
    font-weight: 400;
    color: #000;
    line-height: 23px;
    padding: 8.5px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: transparent;
  }
  .zsc-renew .comp-table tbody td.ct-ours-cell {
    color: #1B5DAA !important;
    font-weight: 700;
    font-size: 18px;
    line-height: 23px;
  }
  .zsc-renew .comp-table tbody td:not(.ct-ours-cell):not(:first-child) {
    font-size: 16px;
    color: #000;
    font-weight: 400;
  }

  /* Orange highlight box around ours column */
  .zsc-renew .ct-highlight {
    display: block;
    position: absolute;
    left: 94px;
    top: 33px;
    width: 138px;
    height: 409px;
    border: 7px solid #FFB000;
    background: transparent;
    pointer-events: none;
    box-sizing: border-box;
    z-index: 1;
  }

  /* Recommend banner */
  .zsc-renew .recommend-banner {
    width: 350px;
    max-width: calc(100vw - 24px);
    margin: 24px auto 0;
    padding: 10px 0;
    background: #1B5DAA;
    border: 2px solid #1B5DAA;
    color: #fff;
    gap: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
  }
  .zsc-renew .recommend-banner .rb-title {
    width: 100%;
    text-align: center;
    line-height: 46px;
    margin: 0;
    padding: 0;
    color: #fff;
    font-weight: 700;
    position: relative;
  }
  .zsc-renew .recommend-banner .rb-dash { display: none; }
  .zsc-renew .recommend-banner .rb-t-1 {
    font-size: 32px;
    font-weight: 500;
    line-height: 46px;
    color: #fff;
  }
  .zsc-renew .recommend-banner .rb-t-2 {
    font-size: 42px;
    font-weight: 700;
    line-height: 46px;
    color: #fff;
  }
  .zsc-renew .recommend-banner .rb-t-3 {
    font-size: 32px;
    font-weight: 700;
    line-height: 46px;
    color: #fff;
  }
  /* White divider line between title and list */
  .zsc-renew .recommend-banner::before {
    content: "";
    position: absolute;
    top: 127px;
    left: 50%;
    transform: translateX(-50%);
    width: 272px;
    max-width: calc(100% - 40px);
    height: 1px;
    background: #fff;
    z-index: 1;
  }
  .zsc-renew .recommend-banner .rb-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 5px;
    padding: 0 15px;
    margin: 0;
    list-style: none;
    width: 100%;
    box-sizing: border-box;
  }
  .zsc-renew .recommend-banner .rb-list li {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 24px;
    font-weight: 500;
    line-height: 38px;
    color: #fff;
    white-space: nowrap;
  }
  .zsc-renew .recommend-banner .rb-check {
    width: 19px;
    height: 19px;
    flex-shrink: 0;
  }
  .zsc-renew .recommend-banner .rb-check img {
    width: 19px;
    height: 19px;
    display: block;
  }

  /* CONSULTING */
  .zsc-renew .consulting {
    padding: 40px 0;
    background-color: #fff;
    background-image: url('../images/consultant.png');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
  }
  .zsc-renew .consulting .container {
    width: 100%;
    max-width: 350px;
    padding: 0;
    gap: 0;
  }
  .zsc-renew .cons-row {
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    align-items: center;
  }
  .zsc-renew .cons-row-1 {
    background-color: rgba(255, 255, 255, 0.75);
    padding: 40px 0;
    gap: 54px;
  }
  .zsc-renew .cons-row-1 .cons-header {
    width: 100%;
    gap: 40px;
  }
  .zsc-renew .cons-title-group {
    padding: 40px 20px;
    gap: 6px;
    align-items: flex-start;
  }
  .zsc-renew .cons-eyebrow {
    font-size: 14px;
    line-height: 24px;
    text-align: left;
  }
  .zsc-renew .cons-title {
    font-size: 32px;
    line-height: 48px;
    text-align: left;
  }
  .zsc-renew .cons-title .ct-sm {
    font-size: 32px;
    line-height: 48px;
  }
  .zsc-renew .cons-title .ct-bracket,
  .zsc-renew .cons-title .ct-emp {
    font-size: 40px;
    line-height: 48px;
  }

  .zsc-renew .cons-desc-group {
    padding: 0 20px;
    gap: 20px;
  }
  .zsc-renew .cons-quote { font-size: 18px; line-height: 39px; }
  .zsc-renew .cons-desc {
    font-size: 16px;
    line-height: 32px;
    letter-spacing: -0.7px;
  }
  .zsc-renew .cons-desc .cd-emp::after { display: none; }
  .zsc-renew .cons-notes {
    padding: 0 20px;
    gap: 10px;
  }
  .zsc-renew .cons-notes p { font-size: 14px; line-height: 20px; }

  .zsc-renew .cons-packages {
    width: 100%;
    padding: 20px 0 0;
    gap: 20px;
    align-items: center;
    box-sizing: border-box;
  }
  .zsc-renew .phase-badge {
    width: 160px;
    height: 40px;
    font-size: 20px;
    line-height: 26px;
    padding: 10px;
  }
  .zsc-renew .phase-cards {
    flex-direction: column;
    gap: 40px;
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
  }
  .zsc-renew .phase-card {
    width: 100%;
    max-width: none;
    min-height: 0;
    padding: 10px 15px;
    gap: 29px;
    border-width: 1px;
  }
  .zsc-renew .ph-no { font-size: 16px; line-height: 26px; }
  .zsc-renew .ph-name > span { font-size: 24px; line-height: 26px; }
  .zsc-renew .ph-price .num { font-size: 48px; line-height: 26px; }
  .zsc-renew .ph-price .man { font-size: 24px; line-height: 26px; }
  .zsc-renew .ph-price .yen { font-size: 16px; line-height: 26px; }
  .zsc-renew .ph-desc {
    font-size: 16px;
    line-height: 26px;
    text-align: left;
  }

  .zsc-renew .cons-row-2 {
    background: #fff;
    padding: 20px 0;
    gap: 40px;
  }
  .zsc-renew .cons-row-2 .cons-image { display: none; }
  .zsc-renew .cons-packages-2 {
    width: 100%;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    padding: 0;
    box-sizing: border-box;
  }
  .zsc-renew .phase-package {
    width: 100%;
    max-width: none;
    gap: 20px;
  }
  .zsc-renew .cons-packages-2 .phase-card {
    width: 100%;
    max-width: none;
    min-height: 0;
  }

  /* TRACK */
  .zsc-renew .track {
    padding: 60px 0 70px;
    background-color: #fff;
    background-image: url('../images/track_record_bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  .zsc-renew .track-title-area { gap: 20px; margin-bottom: 50px; }
  .zsc-renew .track .track-eyebrow { font-size: 16px; }
  .zsc-renew .track-headline {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-wrap: nowrap;
    gap: 4px;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 0;
    text-align: center;
  }
  .zsc-renew .track-headline .th-sm { font-size: 28px; line-height: 1.2; display: block; }
  .zsc-renew .track-headline .th-sm1 { font-size: 28px; padding-top: 50px; line-height: 0.1; display: block; }
  .zsc-renew .track-headline .th-big { font-size: 80px; line-height: 1.2; display: block; }
  .zsc-renew .track-sub { font-size: 16px; line-height: 1.6; }
  .zsc-renew .track-sub .ts-sm { font-size: 20px; line-height: 1.6; }
  .zsc-renew .track-sub .ts-big { font-size: 32px; line-height: 1.2;}
  .zsc-renew .track-sub .ts-big::after { height: 13px;}

  .zsc-renew .track-stats {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 16px;
    background: transparent;
    width: 100%;
    max-width: 100%;
    margin: 0 auto 40px;
    box-sizing: border-box;
  }
  .zsc-renew .track-stats li {
    padding: 0;
    border: 1px solid #fff;
    border-radius: 0;
    max-width: none;
    position: relative;
    overflow: hidden;
  }
  .zsc-renew .ts-text-overlay {
    position: absolute;
    top: -7px;
    width: 100%;
    z-index: 2;
    padding: 0 16px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
  }
  .zsc-renew .ts-label { font-size: 32px; line-height: 54px; margin: 0 0 4px; }
  .zsc-renew .ts-value { line-height: 54px; flex-wrap: nowrap; margin: 0 0 14px; }
  .zsc-renew .ts-value .num { font-size: 70px; line-height: 54px; }
  .zsc-renew .ts-value .unit { font-size: 21px; line-height: 54px; }
  .zsc-renew .ts-value .word { font-size: 40px; line-height: 54px; }
  .zsc-renew .ts-value .num-s { font-size: 40px; line-height: 54px; }
  .zsc-renew .ts-value .num-md { font-size: 50px; line-height: 54px; }
  .zsc-renew .ts-value .arrow { font-size: 32px; line-height: 54px; margin: 0 6px; }
  .zsc-renew .ts-graph {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: auto;
    margin: 0;
    display: block;
    filter: none;
  }
  .zsc-renew .ts-graph img {
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
    display: block;
    margin: 0;
  }
  .zsc-renew .track-cta .btn-gold {
    width: 100%;
    max-width: 320px;
    padding: 12px 20px 11px;
    font-size: 17px;
    line-height: 1.4;
    height: auto;
    min-height: 56px;
  }

  /* FLOW - SP: row layout (circle + image + text) per step */
  .zsc-renew .flow { padding: 60px 0; }
  .zsc-renew .flow .container {
    gap: 40px;
    padding: 0;
    width: 100%;
    max-width: 350px;
  }
  .zsc-renew .flow-title-area {
    gap: 40px;
    width: 100%;
    max-width: 100%;
  }
  .zsc-renew .flow .flow-eyebrow { font-size: 20px; }
  .zsc-renew .flow .sec-title.flow-title {
    font-size: 40px;
    line-height: 1;
    margin: -20px 0 0;
  }
  .zsc-renew .flow-lead {
    font-size: 20px;
    line-height: 31px;
    white-space: normal;
    text-align: center;
    letter-spacing: 0;
  }
  .zsc-renew .flow-lead .fl-line { display: block; }
  .zsc-renew .flow-lead .fl-emp::after { height: 13px; }

  .zsc-renew .flow-steps {
    flex-direction: column;
    gap: 40px;
    width: 100%;
    padding: 0;
    position: relative;
    align-items: stretch;
    justify-content: flex-start;
  }
  /* Vertical orange line aligned to the center of the number circles */
  .zsc-renew .flow-steps::before {
    content: "";
    position: absolute;
    left: 13.5px;
    top: 40px;
    bottom: 40px;
    width: 3px;
    height: auto;
    right: auto;
    background: #FFB000;
    z-index: 0;
    transform: none;
  }
  .zsc-renew .flow-steps .flow-step {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    text-align: center;
    padding: 0;
    position: relative;
    z-index: 1;
    grid-template-columns: none;
    grid-template-areas: none;
  }
  .zsc-renew .fs-circle {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    width: 30px;
    height: 30px;
    font-size: 32px;
    line-height: 35px;
    letter-spacing: 1.6px;
    margin: 0;
    flex-shrink: 0;
    z-index: 1;
  }
  .zsc-renew .fs-img {
    width: 80px;
    height: 80px;
    padding: 0;
    flex-shrink: 0;
    grid-area: auto;
    grid-row: auto;
  }
  .zsc-renew .fs-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 220px;
    flex-shrink: 0;
    text-align: center;
  }
  .zsc-renew .fs-name {
    grid-area: auto;
    align-self: auto;
    font-size: 20px;
    font-weight: 700;
    color: #1B5DAA;
    line-height: 29px;
    text-align: center;
  }
  .zsc-renew .fs-desc {
    grid-area: auto;
    align-self: auto;
    font-size: 16px;
    font-weight: 400;
    color: #000;
    line-height: 26px;
    text-align: center;
  }
  .zsc-renew .fs-name br, .zsc-renew .fs-desc br { display: none; }

  /* USE CASES - vertical layout (SP) */
  .zsc-renew .use-cases { padding: 80px 0; }
  .zsc-renew .use-cases .container {
    padding: 0;
    gap: 80px;
    width: 100%;
    max-width: 350px;
  }
  .zsc-renew .uc-title-area {
    gap: 24px;
    width: 100%;
    max-width: 100%;
  }
  .zsc-renew .use-cases .uc-eyebrow {
    font-size: 20px;
    line-height: 48px;
  }
  .zsc-renew .use-cases .sec-title.uc-title {
    gap: 0;
    margin: 0;
  }
  .zsc-renew .uc-title .uct-line {
    display: block;
    width: 100%;
    text-align: center;
  }
  .zsc-renew .uc-title .uct-blue,
  .zsc-renew .uc-title .uct-orange {
    font-size: 40px;
    line-height: 56px;
  }
  .zsc-renew .uc-lead {
    font-size: 20px;
    line-height: 28px;
    white-space: normal;
    margin-top: 29px;
  }

  .zsc-renew .uc-cards {
    flex-direction: column;
    width: 100%;
    padding: 0;
    gap: 40px;
    align-items: center;
  }
  .zsc-renew .uc-card {
    width: 300px;
    max-width: 100%;
    padding: 24px;
    gap: 32px;
    border-right: 8px solid #86A8CF;
    border-bottom: 8px solid #86A8CF;
  }
  .zsc-renew .uc-card-top {
    width: 200px;
    gap: 20px;
    align-items: flex-start;
  }
  .zsc-renew .uc-photo {
    width: 200px;
    height: 200px;
    max-width: 100%;
  }
  .zsc-renew .uc-card h3 {
    font-size: 24px;
    line-height: 28px;
  }
  .zsc-renew .uc-list li {
    font-size: 16px;
    line-height: 28px;
    font-weight: 500;
  }

  /* CTA button text - shrink labels on mobile to keep them within the button frame */
  .zsc-renew .cta-text { font-size: 13px; }

  /* FAQ */
  /* FAQ - SP */
  .zsc-renew .faq {
    padding: 80px 0;
    background: #fff;
  }
  .zsc-renew .faq .container {
    padding: 0;
    gap: 30px;
    width: 100%;
    max-width: 350px;
  }
  .zsc-renew .faq-title-area {
    gap: 20px;
    width: 100%;
    max-width: 100%;
  }
  .zsc-renew .faq .faq-eyebrow { font-size: 20px; }
  .zsc-renew .faq .sec-title.faq-title {
    font-size: 40px;
    line-height: 1;
  }
  .zsc-renew .faq-list { width: 100%; gap: 5px; }

  .zsc-renew .fq-q {
    font-size: 16px;
    padding: 20px;
    line-height: 24px;
    align-items: center;
    gap: 10px;
  }
  .zsc-renew .fq-q > span:first-child { line-height: 24px; }
  .zsc-renew .fq-icn {
    font-size: 20px;
    line-height: 24px;
  }
  .zsc-renew .fq-a {
    font-size: 16px;
    padding: 20px;
    line-height: 24px;
  }
  .zsc-renew .faq-item.open .fq-a {
    display: flex;
    align-items: flex-start;
    gap: 10px;
  }
  .zsc-renew .fq-a > p {
    flex: 1;
    min-width: 0;
    margin: 0;
  }
  .zsc-renew .fq-close {
    position: static;
    top: auto;
    right: auto;
    flex-shrink: 0;
  }
  .zsc-renew .fq-close { top: 14px; right: 16px; font-size: 18px; line-height: 22px; }

  /* BOTTOM CTA - SP */
  .zsc-renew .bcta {
    padding: 76px 0 0;
    background-image: url('../images/footer_cta_bgsp.png');
  }
  .zsc-renew .bcta::before { display: none; }
  .zsc-renew .bcta > .container {
    padding: 0 16px 0;
    gap: 40px;
    max-width: 100%;
    box-sizing: border-box;
  }
  .zsc-renew .bcta-row {
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    gap: 40px;
    padding: 0;
    align-items: flex-start;
  }
  .zsc-renew .bcta-text {
    width: 100%;
    gap: 40px;
    align-items: flex-start;
  }
  .zsc-renew .bcta-title {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 0;
    row-gap: 12px;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    line-height: 1.475;
    width: 100%;
    max-width: 350px;
    box-sizing: border-box;
  }
  .zsc-renew .bcta-title .bct-line,
  .zsc-renew .bcta-title .bct-row {
    display: contents;
  }
  .zsc-renew .bcta-title .bct-text-1 {
    justify-self: start;
  }
  .zsc-renew .bcta-title .bct-word {
    font-size: 40px;
    line-height: 1.475;
    white-space: nowrap;
    letter-spacing: -0.04em;
  }
  .zsc-renew .bcta-pill {
    font-size: 40px;
    line-height: 1.475;
    padding: 0 10px;
    border-radius: 12px;
    height: 59px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0;
    justify-self: start;
  }

  .zsc-renew .bcta-lead {
    font-size: 24px;
    line-height: 44px;
    width: 100%;
  }
  .zsc-renew .bcta-lead .bl-md {
    font-size: 24px;
    line-height: 44px;
  }
  .zsc-renew .bcta-lead .bl-lg {
    font-size: 32px;
    line-height: 44px;
  }

  .zsc-renew .bcta-mockup {
    width: 100%;
    max-width: 350px;
    height: auto;
    aspect-ratio: 361 / 278;
    margin: 0 auto;
  }
  .zsc-renew .bcta-mockup img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    margin: 0 auto;
    object-fit: contain;
  }

  /* Buttons - full-bleed 3 column at bottom (edge-to-edge of viewport) */
  .zsc-renew .bcta-buttons {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-top: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 30px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    padding: 0;
    list-style: none;
  }
  .zsc-renew .bcta-buttons > li {
    max-width: none;
    min-width: 0;
    flex: initial;
  }
  .zsc-renew .bcta-buttons .cta-btn {
    border-radius: 0;
    height: 90px;
    min-height: 90px;
    min-width: 0;
    padding: 18px 0;
    font-size: 16px;
    line-height: 1.3;
    gap: 0;
    box-shadow: none;
    flex-direction: column;
    letter-spacing: 0;
  }
  .zsc-renew .bcta-buttons .cta-check {
    box-shadow: none;
  }
  .zsc-renew .bcta-buttons .cta-dl {
    border: 1px solid #1B5DAA;
    box-shadow: none;
  }
  .zsc-renew .bcta-buttons .cta-contact {
    box-shadow: none;
  }
  .zsc-renew .bcta-buttons .cta-flag {
    position: static;
    background: transparent;
    color: #fff;
    border: none;
    padding: 0;
    height: auto;
    font-size: 16px;
    font-weight: 700;
    transform: none;
    line-height: 1.3;
    border-radius: 0;
    letter-spacing: 0;
  }
  .zsc-renew .bcta-buttons .cta-text {
    font-size: 16px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .zsc-renew .bcta-buttons .cta-koko { display: none; }
  .zsc-renew .bcta-buttons .cta-tight { letter-spacing: -0.1em; }
  .zsc-renew .bcta-buttons .cta-dl .cta-text { letter-spacing: -0.11em; }
  .zsc-renew .bcta-buttons .cta-arrow { display: none; }
}

@media (max-width: 380px) {
  .zsc-renew .hero-headline { font-size: 28px; }
  .zsc-renew .sec-title { font-size: 22px; }
}

/* ============================================
   PC NARROW (tab shrink) – header CTA & headline scale instead of wrap
   ============================================ */
@media (min-width: 769px) {
  /* Headline: scale down fluidly and never wrap inside a row */
  .zsc-renew .hero-headline {
    font-size: clamp(40px, 4.4vw, 68px);
    white-space: nowrap;
  }
  .zsc-renew .hero-headline .hl-row { white-space: nowrap; }
}

/* Step 0 (~1400px and below): start shrinking BEFORE overlap occurs.
   - gnav: tighten spacing
   - hcta: proportionally shrink while keeping ratio 134:90
   - logo: slight shrink */
@media (min-width: 769px) and (max-width: 1400px) {
  .zsc-renew .header-inner { padding: 7px 16px; gap: 12px; }
  .zsc-renew .logo img { width: 160px; height: 36px; }

  .zsc-renew .gnav { margin-left: 16px; }
  .zsc-renew .gnav ul { gap: 0; }
  .zsc-renew .gnav a { padding: 10px 10px; }

  .zsc-renew .hcta {
    width: 120px;
    height: 81px;
    max-width: 120px;
    max-height: 81px;
    gap: 9px;
    padding: 16px 14px;
    font-size: 14px;
  }
  .zsc-renew .hcta-check { padding: 16px 20px; }
  .zsc-renew .hcta-ico { width: 23px; height: 23px; }
  .zsc-renew .hcta-check .hcta-ico { width: 20px; height: 28px; }
  .zsc-renew .hcta-dl .hcta-ico { width: 31px; height: 29px; }
  .zsc-renew .hcta-contact .hcta-ico { width: 34px; height: 30px; }
}

/* Step 1 (~1280px and below) */
@media (min-width: 769px) and (max-width: 1280px) {
  .zsc-renew .header-inner { padding: 7px 12px; gap: 8px; }
  .zsc-renew .logo img { width: 140px; height: 31px; }

  .zsc-renew .gnav { margin-left: 12px; }
  .zsc-renew .gnav a { padding: 10px 8px; font-size: 14px; }

  .zsc-renew .hcta {
    width: 104px;
    height: 70px;
    max-width: 104px;
    max-height: 70px;
    gap: 8px;
    padding: 14px 12px;
    font-size: 12px;
  }
  .zsc-renew .hcta-check { padding: 14px 17px; }
  .zsc-renew .hcta-ico { width: 20px; height: 20px; }
  .zsc-renew .hcta-check .hcta-ico { width: 17px; height: 24px; }
  .zsc-renew .hcta-dl .hcta-ico { width: 27px; height: 25px; }
  .zsc-renew .hcta-contact .hcta-ico { width: 30px; height: 26px; }
}

/* Step 2 (~1092px and below) */
@media (min-width: 769px) and (max-width: 1092px) {
  .zsc-renew .header-inner { padding: 6px 8px; gap: 6px; }
  .zsc-renew .logo img { width: 120px; height: 27px; }

  .zsc-renew .gnav { margin-left: 8px; }
  .zsc-renew .gnav a { padding: 8px 6px; font-size: 13px; }

  .zsc-renew .hcta {
    width: 90px;
    height: 60px;
    max-width: 90px;
    max-height: 60px;
    gap: 6px;
    padding: 12px 10px;
    font-size: 11px;
  }
  .zsc-renew .hcta-check { padding: 12px 14px; }
  .zsc-renew .hcta-ico { width: 17px; height: 17px; }
  .zsc-renew .hcta-check .hcta-ico { width: 15px; height: 21px; }
  .zsc-renew .hcta-dl .hcta-ico { width: 23px; height: 21px; }
  .zsc-renew .hcta-contact .hcta-ico { width: 26px; height: 22px; }
}

/* Step 3 (~870px and below): minimum sizes (still PC layout) */
@media (min-width: 769px) and (max-width: 870px) {
  .zsc-renew .header-inner { padding: 6px 6px; gap: 4px; align-items: center; }
  .zsc-renew .logo img { width: 100px; height: 22px; }

  .zsc-renew .gnav { min-width: 0; margin-left: 4px; }
  .zsc-renew .gnav ul { gap: 0; flex-wrap: nowrap; }
  .zsc-renew .gnav li { min-width: 0; flex: 0 0 auto; }
  .zsc-renew .gnav a {
    white-space: nowrap;
    padding: 6px 4px;
    font-size: 12px;
  }

  .zsc-renew .hcta {
    width: 76px;
    height: 51px;
    max-width: 76px;
    max-height: 51px;
    gap: 5px;
    padding: 10px 8px;
    font-size: 10px;
    border-radius: 5px;
  }
  .zsc-renew .hcta-check { padding: 10px 12px; }
  .zsc-renew .hcta-ico { width: 14px; height: 14px; }
  .zsc-renew .hcta-check .hcta-ico { width: 12px; height: 17px; }
  .zsc-renew .hcta-dl .hcta-ico { width: 20px; height: 18px; }
  .zsc-renew .hcta-contact .hcta-ico { width: 22px; height: 19px; }
}

/* Hero right column / features scale down on narrow PC so nothing gets clipped */
@media (min-width: 769px) and (max-width: 1100px) {
  .zsc-renew .hero { padding: 90px 0 60px; }
  .zsc-renew .hero-inner { padding: 0 16px; }
  .zsc-renew .hero-top { align-items: start; }
  .zsc-renew .hero-right { justify-content: flex-start; }
  .zsc-renew .hero-features { margin-top: 16px; gap: 18px; padding-top: 0; }
  .zsc-renew .hf-icon { width: 90px; height: 90px; }
  .zsc-renew .hero-features li { font-size: 14px; }
  .zsc-renew .hf-label { font-size: 14px; }
  .zsc-renew .hero-lead-strong { font-size: 30px; }
  .zsc-renew .hero-lead { font-size: 22px; }
  .zsc-renew .hero-product { font-size: 22px; }
  .zsc-renew .hero-product strong { font-size: 34px; }

  /* Hero CTA buttons shrink proportionally */
  .zsc-renew .hero-cta { gap: 6px; margin-top: 40px; padding-top: 18px; }
  .zsc-renew .hero-cta > li { max-width: 280px; flex: 0 1 280px; }
  .zsc-renew .hero .hero-cta .cta-btn {
    height: 100px;
    padding: 10px;
    font-size: 24px;
    gap: 10px;
  }
  .zsc-renew .hero .hero-cta .cta-contact { gap: 14px; }
  .zsc-renew .hero .hero-cta .cta-text { font-size: 24px; }
  .zsc-renew .hero .hero-cta .cta-arrow { font-size: 24px; }
  .zsc-renew .hero .hero-cta .cta-flag {
    font-size: 16px;
    height: 34px;
    padding: 0 12px;
    top: -18px;
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .zsc-renew .hero-features { margin-top: 12px; gap: 12px; padding-top: 0; }
  .zsc-renew .hf-icon { width: 72px; height: 72px; }
  .zsc-renew .hero-features li { font-size: 12px; }
  .zsc-renew .hf-label { font-size: 12px; }

  /* Hero CTA buttons shrink further */
  .zsc-renew .hero-cta { gap: 5px; margin-top: 32px; padding-top: 14px; }
  .zsc-renew .hero-cta > li { max-width: 220px; flex: 0 1 220px; }
  .zsc-renew .hero .hero-cta .cta-btn {
    height: 80px;
    padding: 8px;
    font-size: 18px;
    gap: 6px;
  }
  .zsc-renew .hero .hero-cta .cta-contact { gap: 10px; }
  .zsc-renew .hero .hero-cta .cta-text { font-size: 18px; }
  .zsc-renew .hero .hero-cta .cta-arrow { font-size: 18px; }
  .zsc-renew .hero .hero-cta .cta-flag {
    font-size: 12px;
    height: 26px;
    padding: 0 9px;
    top: -14px;
  }
}

/* ============================================
   NARROW PC: shrink all major section content so nothing overflows
   ============================================ */
@media (min-width: 769px) and (max-width: 1100px) {
  /* Generic container padding shrinks slightly */
  .zsc-renew .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  /* worry-grid: switch from fixed 325px columns to fractional so it fits */
  .zsc-renew .worry-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 100%;
    padding: 0 16px;
  }
  .zsc-renew .worry-illust { width: 100%; max-width: 186px; height: auto; }
  .zsc-renew .worry-illust img { width: 100%; height: auto; max-height: 164px; }

  /* cause-wrap: keep absolute-positioned layout intact but scale it down */
  .zsc-renew .cause-wrap {
    width: 100%;
    overflow: hidden;
  }
  .zsc-renew .cause-steps {
    width: 1000px;
    max-width: none;
    transform-origin: top left;
    transform: scale(calc((100vw - 32px) / 1000px));
    margin-bottom: calc((100vw - 32px - 1000px) * 382 / 1000);
  }

  /* check-row: reduce side illustrations and let the center list flex */
  .zsc-renew .check-row { gap: 16px; }
  .zsc-renew .check-illust { height: 260px; }
  .zsc-renew .check-list {
    width: auto;
    max-width: 100%;
    padding: 30px 60px;
  }

  /* feature-cards: let cards shrink instead of overflowing */
  .zsc-renew .feature-cards { width: 100%; max-width: 100%; gap: 12px; padding: 0 8px; box-sizing: border-box; }
  .zsc-renew .feature-card { width: auto; flex: 1 1 0; min-width: 0; max-width: 320px; gap: 10px; }
  .zsc-renew .feature-card .fc-features { font-size: 22px; left: 12px; top: -6px; }
  .zsc-renew .feature-card .fc-head { padding-top: 14px; }
  .zsc-renew .feature-card .fc-label {
    height: auto;
    min-height: 38px;
    padding: 6px 8px 6px 44px;
    border-radius: 8px;
  }
  .zsc-renew .feature-card .fc-no {
    left: 10px;
    font-size: 24px;
  }
  .zsc-renew .feature-card .fc-label-text {
    font-size: 18px;
    line-height: 1.2;
    flex-wrap: wrap;
    justify-content: center;
  }
  .zsc-renew .feature-card .fc-photo {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 320 / 240;
    border-width: 4px;
    border-radius: 20px;
  }
  .zsc-renew .feature-card .fc-photo img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
  }
  .zsc-renew .feature-card .fc-desc { font-size: 14px; line-height: 1.6; }
  .zsc-renew .feature-card .fc-desc strong { font-size: 17px; }

  /* benefit-zigzag bz-num: shrink the circle and text */
  .zsc-renew .benefit-zigzag .bz-num { width: 60px; height: 60px; }
  .zsc-renew .benefit-zigzag .bz-num-eyebrow { font-size: 12px; line-height: 1.2; }
  .zsc-renew .benefit-zigzag .bz-num-no { font-size: 26px; line-height: 1.1; margin-top: -4px; }
  .zsc-renew .benefit-zigzag .bz-card h3 { font-size: 18px; gap: 8px; }
  .zsc-renew .benefit-zigzag .bz-prefix { font-size: 18px; line-height: 1.3; }
  .zsc-renew .benefit-zigzag .bz-h3-text { white-space: normal; }
  .zsc-renew .benefit-zigzag .bz-card h3 .bz-icon { width: 32px; height: 36px; }
  .zsc-renew .benefit-zigzag .bz-card p { font-size: 14px; line-height: 1.8; padding: 3px; }
  .zsc-renew .benefit-zigzag .bz-card p strong { font-size: 15px; }

  /* plan-card pc-need: shrink */
  .zsc-renew .plan-card .pc-need { font-size: 22px; line-height: 1.3; padding: 8px; }
  .zsc-renew .plan-card .pc-arrow { width: 90px; height: 14px; margin: -12px 0 0; }
  .zsc-renew .plan-card .pc-arrow::before { border-left-width: 40px; border-right-width: 40px; border-top-width: 14px; }

  /* bcta-title: allow wrap and scale down further */
  .zsc-renew .bcta-title .bct-row { flex-wrap: wrap; row-gap: 4px; column-gap: 8px; }
  .zsc-renew .bcta-lead { white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }

  /* phase-cards: keep visual proportions; let ph-desc wrap properly */
  .zsc-renew .phase-cards { align-items: stretch; }
  .zsc-renew .phase-cards .phase-card { min-height: 200px; justify-content: flex-start; }
  .zsc-renew .phase-cards .phase-card .ph-desc,
  .zsc-renew .cons-packages-2 .phase-card .ph-desc {
    word-break: keep-all;
    overflow-wrap: anywhere;
    white-space: normal;
  }
  .zsc-renew .phase-package { min-width: 0; }
  .zsc-renew .cons-packages-2 .phase-card { min-height: 200px; }

  /* track-stats: ensure all graphs have identical dimensions */
  .zsc-renew .track-stats .ts-graph { width: 100%; max-width: 100%; height: auto; aspect-ratio: 300 / 396; margin: auto auto 0; }
  .zsc-renew .track-stats .ts-graph img { width: 100%; height: 100%; object-fit: contain; }

  /* uc-cards: align top so heights are identical */
  .zsc-renew .uc-cards { align-items: stretch; }
  .zsc-renew .uc-card { justify-content: flex-start; }

  /* benefit-zigzag: shrink columns proportionally */
  .zsc-renew .benefit-zigzag { width: 100%; max-width: 100%; padding: 0 8px; box-sizing: border-box; }
  .zsc-renew .bz-row, .zsc-renew .bz-row-rev { gap: 24px; height: auto; min-height: 0; align-items: center; width: 100%; }
  .zsc-renew .bz-col-text { width: auto; flex: 1 1 0; min-width: 0; max-width: 450px; }
  .zsc-renew .bz-col-photo { width: auto; flex: 1 1 0; min-width: 0; max-width: 500px; height: auto; aspect-ratio: 500 / 334; }
  .zsc-renew .bz-col-photo img { width: 100%; height: 100%; object-fit: cover; }
  .zsc-renew .bz-card { padding: 12px 4px; }
  .zsc-renew .bz-card p { width: auto !important; max-width: 100%; }
  .zsc-renew .bz-head::after { width: 100%; max-width: 100%; }

  /* plan-cards: let cards shrink */
  .zsc-renew .plan-cards { width: 100%; max-width: 100%; padding: 0 8px; box-sizing: border-box; }
  .zsc-renew .plan-card { width: auto; flex: 1 1 0; min-width: 0; max-width: 333px; }

  /* comp-table-wrap: let the table fit */
  .zsc-renew .comp-table-wrap { width: 100%; max-width: 100%; padding: 24px 8px; box-sizing: border-box; }
  .zsc-renew .comp-table { width: 100%; max-width: 100%; }
  .zsc-renew .ct-highlight { display: none; }

  /* recommend-banner: full width within container */
  .zsc-renew .recommend-banner { width: 100%; max-width: 100%; padding: 24px 16px; box-sizing: border-box; }
  .zsc-renew .recommend-banner .rb-list { font-size: 18px; gap: 12px; }

  /* cons-row: shrink content columns */
  .zsc-renew .cons-row { width: 100%; max-width: 100%; padding: 30px 16px; gap: 16px; box-sizing: border-box; }
  .zsc-renew .cons-row-1 .cons-header { width: auto; flex: 1 1 0; min-width: 0; max-width: 450px; }
  .zsc-renew .cons-packages { width: auto; flex: 1 1 0; min-width: 0; max-width: 500px; padding-top: 32px; }
  .zsc-renew .cons-row-2 .cons-image { width: auto; flex: 1 1 0; min-width: 0; max-width: 450px; height: auto; aspect-ratio: 450 / 330; }
  .zsc-renew .cons-row-2 .cons-image img { height: 100%; }
  .zsc-renew .cons-packages-2 { width: auto; flex: 1 1 0; min-width: 0; max-width: 500px; gap: 10px; }

  /* Shrink title typography */
  .zsc-renew .cons-title { font-size: 28px; line-height: 1.4; }
  .zsc-renew .cons-title .ct-sm { font-size: 28px; line-height: 1.4; }
  .zsc-renew .cons-title .ct-bracket,
  .zsc-renew .cons-title .ct-emp { font-size: 36px; line-height: 1.4; }
  .zsc-renew .cons-eyebrow { font-size: 16px; line-height: 1.4; }

  /* Shrink description group typography */
  .zsc-renew .cons-desc-group { width: 100%; min-width: 0; gap: 14px; }
  .zsc-renew .cons-quote { font-size: 15px; line-height: 1.8; }
  .zsc-renew .cons-desc { font-size: 14px; line-height: 1.9; }
  .zsc-renew .cons-notes p { font-size: 12px; line-height: 1.5; }

  /* Phase cards: equal widths, flex 1 1 0 */
  .zsc-renew .phase-cards { width: 100%; gap: 12px; justify-content: stretch; }
  .zsc-renew .phase-cards .phase-card { width: auto; flex: 1 1 0; min-width: 0; padding: 12px; gap: 16px; }
  .zsc-renew .cons-packages-2 .phase-package { width: auto; flex: 1 1 0; min-width: 0; }
  .zsc-renew .cons-packages-2 .phase-card { width: 100%; padding: 12px; gap: 16px; }
  .zsc-renew .phase-badge { width: auto; max-width: 100%; min-width: 120px; height: 36px; font-size: 16px; padding: 6px 14px; }
  .zsc-renew .ph-no { font-size: 13px; line-height: 1.4; }
  .zsc-renew .ph-name > span { font-size: 15px; line-height: 1.4; white-space: normal; }
  .zsc-renew .ph-price .num { font-size: 28px; line-height: 1.2; }
  .zsc-renew .ph-price .man { font-size: 18px; line-height: 1.2; }
  .zsc-renew .ph-price .yen { font-size: 13px; line-height: 1.2; }
  .zsc-renew .ph-desc { font-size: 13px; line-height: 1.7; }

  /* track-stats: shrink graphs, numbers and gaps */
  .zsc-renew .track-stats { width: 100%; max-width: 100%; padding: 24px 8px; gap: 12px; box-sizing: border-box; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .zsc-renew .track-stats li { width: 100%; max-width: 100%; min-width: 0; }
  .zsc-renew .track-stats .ts-label { font-size: 22px; line-height: 1.4; }
  .zsc-renew .track-stats .ts-value { line-height: 1.1; margin-bottom: 10px; flex-wrap: wrap; }
  .zsc-renew .track-stats .ts-value .num { font-size: 54px; line-height: 1.1; }
  .zsc-renew .track-stats .ts-value .num-s { font-size: 30px; line-height: 1.1; }
  .zsc-renew .track-stats .ts-value .num-md { font-size: 38px; line-height: 1.1; }
  .zsc-renew .track-stats .ts-value .unit { font-size: 16px; line-height: 1.1; }
  .zsc-renew .track-stats .ts-value .word { font-size: 30px; line-height: 1.1; }
  .zsc-renew .track-stats .ts-value .arrow { font-size: 22px; line-height: 1.1; margin: 0 4px; }
  .zsc-renew .track-stats .ts-graph { width: 100%; max-width: 280px; height: auto; aspect-ratio: 300 / 396; margin: auto auto 0; }
  .zsc-renew .track-stats .ts-graph img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; }

  /* flow-steps: let steps shrink */
  .zsc-renew .flow-steps { width: 100%; max-width: 100%; padding: 0 8px; box-sizing: border-box; }
  .zsc-renew .flow-steps .flow-step { width: auto; flex: 1 1 0; min-width: 0; max-width: 170px; }
  .zsc-renew .flow-steps::before { left: 8%; right: 8%; }
  .zsc-renew .fs-img { width: 100%; height: auto; max-width: 140px; aspect-ratio: 1 / 1; }

  /* uc-cards: equal-width 3-column grid that shrinks with viewport */
  .zsc-renew .uc-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
    width: 100%;
    max-width: 100%;
    padding: 0 8px;
    box-sizing: border-box;
    gap: 12px;
  }
  .zsc-renew .uc-card { width: 100%; max-width: none; min-width: 0; padding: 18px; gap: 20px; }
  .zsc-renew .uc-card-top { width: 100%; align-items: center; gap: 14px; }
  .zsc-renew .uc-photo { width: 100%; max-width: 180px; height: auto; aspect-ratio: 1 / 1; margin: 0 auto; }
  .zsc-renew .uc-card h3 { font-size: 20px; line-height: 1.3; }
  .zsc-renew .uc-list li { font-size: 14px; line-height: 1.7; }

  /* faq-list: full width */
  .zsc-renew .faq-list { width: 100%; max-width: 100%; padding: 0 8px; box-sizing: border-box; }

  /* bcta (bottom CTA): make row and buttons flexible so they don't overflow */
  .zsc-renew .bcta { padding: 80px 0; }
  .zsc-renew .bcta > .container { max-width: 100%; padding: 0 16px; gap: 60px; box-sizing: border-box; }
  .zsc-renew .bcta-row { width: 100%; max-width: 100%; gap: 16px; padding: 0 8px; box-sizing: border-box; align-items: center; }
  .zsc-renew .bcta-text { width: auto; flex: 1 1 0; min-width: 0; max-width: 560px; gap: 24px; }
  .zsc-renew .bcta-title { font-size: 32px; line-height: 1.4; gap: 6px; }
  .zsc-renew .bcta-title .bct-word,
  .zsc-renew .bcta-pill { font-size: 32px; line-height: 1.4; }
  .zsc-renew .bcta-pill { padding: 0 14px; border-radius: 10px; }
  .zsc-renew .bcta-lead { font-size: 18px; line-height: 1.6; }
  .zsc-renew .bcta-lead .bl-md { font-size: 18px; line-height: 1.6; }
  .zsc-renew .bcta-lead .bl-lg { font-size: 24px; line-height: 1.6; }
  .zsc-renew .bcta-mockup { width: auto; flex: 0 1 320px; min-width: 0; max-width: 320px; height: auto; aspect-ratio: 361 / 278; }
  .zsc-renew .bcta-mockup img { width: 100%; height: 100%; object-fit: contain; }
  .zsc-renew .bcta-buttons { width: 100%; max-width: 100%; padding: 18px 8px 0; gap: 6px; box-sizing: border-box; }
  .zsc-renew .bcta-buttons > li { flex: 1 1 0; min-width: 0; max-width: 328px; }
  .zsc-renew .bcta-buttons .cta-btn { height: 100px; padding: 10px; font-size: 24px; gap: 10px; }
  .zsc-renew .bcta-buttons .cta-contact { gap: 14px; }
  .zsc-renew .bcta-buttons .cta-text { font-size: 24px; }
  .zsc-renew .bcta-buttons .cta-arrow { font-size: 24px; }
  .zsc-renew .bcta-buttons .cta-flag { font-size: 16px; height: 34px; padding: 0 12px; top: -18px; }

  /* Fixed side header: shrink at narrow PC widths */
  .zsc-renew .fixed-header-menu-button,
  .zsc-renew .fixed-header-inquiry-button {
    padding: 22px 14px;
    font-size: 13px;
    line-height: 18px;
    letter-spacing: .15em;
  }
  .zsc-renew .fixed-header-inquiry-button {
    padding: 14px 10px;
    gap: 6px;
  }
  .zsc-renew .fixed-header-menu-button img { width: 18px; }
  .zsc-renew .fixed-header-inquiry-button img { width: 22px; }
  .zsc-renew .fixed-header-menu-button__line-group { width: 18px; height: 14px; }

  /* Chatbot fixed button: shrink at narrow PC widths */
  .zsc-renew .chatbot-form-open {
    --chatbot-form-button-pc-width: 190px;
    --chatbot-form-button-pc-height: 141px;
    --chatbot-form-button-pc-horizontal: 20px;
    --chatbot-form-button-pc-vertical: 20px;
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .zsc-renew .worry-grid { padding: 0 8px; gap: 8px; }
  .zsc-renew .worry-card { padding: 14px; }
  .zsc-renew .worry-illust { max-width: 150px; }
  .zsc-renew .worry-illust img { max-height: 130px; }

  .zsc-renew .check-illust { height: 200px; }
  .zsc-renew .check-list { padding: 24px 36px; }
  .zsc-renew .check-list .cl-text { line-height: 1.6; }

  /* Tighten everything further at narrower widths */
  .zsc-renew .feature-cards, .zsc-renew .plan-cards { gap: 8px; }
  .zsc-renew .uc-cards { gap: 8px; padding: 0 4px; }
  .zsc-renew .uc-card { padding: 12px; gap: 14px; }
  .zsc-renew .uc-card h3 { font-size: 16px; }
  .zsc-renew .uc-list li { font-size: 12px; line-height: 1.6; }
  .zsc-renew .feature-card .fc-features { font-size: 18px; }
  .zsc-renew .feature-card .fc-label { min-height: 32px; padding: 4px 6px 4px 34px; border-radius: 6px; }
  .zsc-renew .feature-card .fc-no { left: 8px; font-size: 18px; }
  .zsc-renew .feature-card .fc-label-text { font-size: 14px; line-height: 1.2; }
  .zsc-renew .feature-card .fc-photo { border-width: 3px; border-radius: 14px; }
  .zsc-renew .feature-card .fc-desc { font-size: 12px; line-height: 1.55; }
  .zsc-renew .feature-card .fc-desc strong { font-size: 14px; }

  /* benefit-zigzag bz-num: shrink further */
  .zsc-renew .benefit-zigzag .bz-num { width: 50px; height: 50px; }
  .zsc-renew .benefit-zigzag .bz-num-eyebrow { font-size: 10px; }
  .zsc-renew .benefit-zigzag .bz-num-no { font-size: 22px; margin-top: -3px; }
  .zsc-renew .benefit-zigzag .bz-card h3 { font-size: 15px; gap: 6px; }
  .zsc-renew .benefit-zigzag .bz-prefix { font-size: 15px; }
  .zsc-renew .benefit-zigzag .bz-card h3 .bz-icon { width: 26px; height: 30px; }
  .zsc-renew .benefit-zigzag .bz-card p { font-size: 12px; line-height: 1.7; }
  .zsc-renew .benefit-zigzag .bz-card p strong { font-size: 13px; }

  /* plan-card pc-need: shrink further */
  .zsc-renew .plan-card .pc-need { font-size: 18px; line-height: 1.3; padding: 6px; }
  .zsc-renew .plan-card .pc-arrow { width: 70px; height: 11px; margin: -12px 0 0; }
  .zsc-renew .plan-card .pc-arrow::before { border-left-width: 30px; border-right-width: 30px; border-top-width: 11px; }

  /* bcta-title: shrink further at narrowest PC */
  .zsc-renew .bcta-title { font-size: 24px; line-height: 1.35; }
  .zsc-renew .bcta-title .bct-word,
  .zsc-renew .bcta-pill { font-size: 24px; line-height: 1.35; }
  .zsc-renew .bcta-pill { padding: 0 10px; border-radius: 8px; }
  .zsc-renew .bcta-lead { font-size: 15px; line-height: 1.6; }
  .zsc-renew .bcta-lead .bl-md { font-size: 15px; line-height: 1.6; }
  .zsc-renew .bcta-lead .bl-lg { font-size: 18px; line-height: 1.6; }

  /* Phase cards keep min-height tighter */
  .zsc-renew .phase-cards .phase-card,
  .zsc-renew .cons-packages-2 .phase-card { min-height: 160px; }

  /* Fixed side header: shrink further */
  .zsc-renew .fixed-header-menu-button,
  .zsc-renew .fixed-header-inquiry-button {
    padding: 18px 10px;
    font-size: 11px;
    line-height: 16px;
    letter-spacing: .12em;
  }
  .zsc-renew .fixed-header-inquiry-button { padding: 12px 8px; gap: 4px; }
  .zsc-renew .fixed-header-menu-button img { width: 15px; }
  .zsc-renew .fixed-header-inquiry-button img { width: 18px; }
  .zsc-renew .fixed-header-menu-button__line-group { width: 15px; height: 12px; }

  /* Chatbot fixed button: shrink further */
  .zsc-renew .chatbot-form-open {
    --chatbot-form-button-pc-width: 150px;
    --chatbot-form-button-pc-height: 111px;
    --chatbot-form-button-pc-horizontal: 16px;
    --chatbot-form-button-pc-vertical: 16px;
  }
  .zsc-renew .bz-row, .zsc-renew .bz-row-rev { gap: 16px; }
  .zsc-renew .cons-row { padding: 24px 12px; gap: 12px; }
  .zsc-renew .cons-title { font-size: 22px; }
  .zsc-renew .cons-title .ct-sm { font-size: 22px; }
  .zsc-renew .cons-title .ct-bracket, .zsc-renew .cons-title .ct-emp { font-size: 28px; }
  .zsc-renew .cons-eyebrow { font-size: 14px; }
  .zsc-renew .cons-quote { font-size: 13px; line-height: 1.7; }
  .zsc-renew .cons-desc { font-size: 12px; line-height: 1.8; }
  .zsc-renew .cons-notes p { font-size: 11px; }
  .zsc-renew .phase-cards { gap: 8px; }
  .zsc-renew .phase-cards .phase-card,
  .zsc-renew .cons-packages-2 .phase-card { padding: 10px; gap: 12px; }
  .zsc-renew .phase-badge { min-width: 100px; height: 30px; font-size: 13px; padding: 4px 10px; }
  .zsc-renew .ph-no { font-size: 11px; }
  .zsc-renew .ph-name > span { font-size: 13px; }
  .zsc-renew .ph-price .num { font-size: 22px; }
  .zsc-renew .ph-price .man { font-size: 15px; }
  .zsc-renew .ph-price .yen { font-size: 11px; }
  .zsc-renew .ph-desc { font-size: 11px; line-height: 1.6; }
  .zsc-renew .track-stats { padding: 16px 4px; gap: 6px; }
  .zsc-renew .track-stats .ts-label { font-size: 16px; }
  .zsc-renew .track-stats .ts-value { margin-bottom: 6px; }
  .zsc-renew .track-stats .ts-value .num { font-size: 36px; }
  .zsc-renew .track-stats .ts-value .num-s { font-size: 22px; }
  .zsc-renew .track-stats .ts-value .num-md { font-size: 26px; }
  .zsc-renew .track-stats .ts-value .unit { font-size: 12px; }
  .zsc-renew .track-stats .ts-value .word { font-size: 22px; }
  .zsc-renew .track-stats .ts-value .arrow { font-size: 16px; margin: 0 2px; }
  .zsc-renew .recommend-banner .rb-title { font-size: 28px; line-height: 1.3; }
  .zsc-renew .recommend-banner .rb-list { font-size: 15px; gap: 8px; }
  .zsc-renew .recommend-banner .rb-list li { line-height: 1.3; }
}

/* ============================================
   CHATBOT BUTTON (matches https://infusion.co.jp/zsc/ chatbot-form-open)
   ============================================ */
.zsc-renew {
  --chatbot-form-button-pc-width: 250px;
  --chatbot-form-button-pc-height: 185px;
  --chatbot-form-button-pc-horizontal: 30px;
  --chatbot-form-button-pc-vertical: 30px;
  /* Mobile chatbot button matches reference site (https://infusion.co.jp/zsc/) */
  --chatbot-form-button-sp-width: 150px;
  --chatbot-form-button-sp-height: 111px;
  --chatbot-form-button-sp-horizontal: 30px;
  --chatbot-form-button-sp-vertical: 30px;
}

.zsc-renew .chatbot-form-open {
  position: fixed;
  font-size: 16px;
  line-height: 1;
  z-index: 2147483646;
  bottom: var(--chatbot-form-button-sp-vertical);
  right: var(--chatbot-form-button-sp-horizontal);
  transition: opacity .1s ease-in-out .2s, transform .1s ease-in-out .2s;
}
.zsc-renew .chatbot-form-open__content {
  animation: chatbot-fadein-slide .5s ease-in-out 1s forwards 1;
  opacity: 0;
  transform: translateY(30px);
}
.zsc-renew .chatbot-form-open__inner { display: block; }
.zsc-renew .chatbot-form-open__inner:hover {
  animation: chatbot-bound-short .5s linear 0s 1;
}
.zsc-renew .chatbot-form-open__button {
  width: var(--chatbot-form-button-sp-width);
  height: var(--chatbot-form-button-sp-height);
  cursor: pointer;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
}
.zsc-renew .chatbot-form-open__button img {
  object-fit: contain;
  object-position: 50% 50%;
  width: 100%;
  height: 100%;
}

@media (min-width: 780px) {
  .zsc-renew .chatbot-form-open {
    bottom: var(--chatbot-form-button-pc-vertical);
    right: var(--chatbot-form-button-pc-horizontal);
  }
  .zsc-renew .chatbot-form-open__button {
    width: var(--chatbot-form-button-pc-width);
    height: var(--chatbot-form-button-pc-height);
  }
}

@keyframes chatbot-fadein-slide {
  0%   { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes chatbot-bound-short {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}


/* /zsc/ TOPのみ: heroが見出しになるため重複するタイトル帯を隠す */
.is-zsc-top .page-header-top { display: none; }

/* テーマ style.css の @media(max-width:767px){ h1{color:#fff!important; margin:0 0 0 -7px!important} }
   が本文heroの<h1>まで白字・左ズレさせるため、!important で打ち消して本来の黒字に戻す */
@media (max-width: 768px) {
  .zsc-renew .hero-headline { color: #1a1a1a !important; margin: 0 auto 14px !important; }
}
