/* ==========================================================================
   DigitalCraft — 持続化補助金パッケージLP (css/jizokuka-package.css)
   Scoped under body.jzk-page
   ========================================================================== */

.jzk-page {
  background-color: var(--paper, #f2f0e9);
  color: var(--color-text, #54564e);
}

.jzk-page [hidden] {
  display: none !important;
}

.jzk-page h1,
.jzk-page .craft-title {
  word-break: auto-phrase;
  text-wrap: balance;
}

/* 共通ノート・注記 */
.jzk-page .jzk-note {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--color-muted, #686a62);
}

/* --------------------------------------------------------------------------
   SECTION HEADING COMMON
   -------------------------------------------------------------------------- */
.jzk-page .craft-section-heading {
  display: block; /* Left-aligned stack: kicker, title, lead */
  margin-bottom: 52px;
}

.jzk-page .craft-section-heading > .craft-kicker {
  margin-bottom: 22px;
}

.jzk-page .jzk-head__body {
  min-width: 0;
}

.jzk-page .jzk-head__body .craft-title {
  margin-bottom: 0;
}

.jzk-page .jzk-head__body .craft-lead {
  margin-top: 24px;
  max-width: none;
  font-size: 15px;
  line-height: 2;
  color: var(--color-text, #54564e);
}

.jzk-page .jzk-dark .jzk-head__body .craft-lead {
  color: rgba(242, 240, 233, 0.82);
}

/* --------------------------------------------------------------------------
   FIGURE (Visual component: 1px hairline + offset shadow 8px 8px 0)
   -------------------------------------------------------------------------- */
.jzk-page .jzk-figure {
  margin: 0;
}

.jzk-page .jzk-figure__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid rgba(32, 33, 30, 0.25);
  background: var(--color-surface, #ffffff);
  box-shadow: 8px 8px 0 var(--ink, #20211e);
  translate: 0 0;
  transition: translate 0.5s var(--ease-craft, cubic-bezier(0.16, 1, 0.3, 1)),
              box-shadow 0.5s var(--ease-craft, cubic-bezier(0.16, 1, 0.3, 1));
}

.jzk-page .jzk-figure__frame:hover {
  translate: -4px -4px;
  box-shadow: 12px 12px 0 var(--ink, #20211e);
}

.jzk-page .jzk-figure__frame picture,
.jzk-page .jzk-figure__frame img {
  display: block;
  width: 100%;
  height: 100%;
}

.jzk-page .jzk-figure__frame img {
  object-fit: cover;
  filter: saturate(0.85) contrast(1.02);
  transition: filter 0.5s var(--ease-craft, cubic-bezier(0.16, 1, 0.3, 1));
}

.jzk-page .jzk-figure__frame:hover img {
  filter: none;
}

.jzk-page .jzk-figure--wide {
  margin-bottom: 44px;
}

.jzk-page .jzk-figure--wide .jzk-figure__frame {
  aspect-ratio: 16 / 9;
}

.jzk-page .jzk-figure__caption {
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.8;
  color: var(--color-muted, #686a62);
  text-align: right;
}

/* --------------------------------------------------------------------------
   01 / HERO
   -------------------------------------------------------------------------- */
.jzk-page .jzk-hero {
  padding: calc(var(--header-height, 88px) + 40px) 0 80px;
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-hero__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(32, 33, 30, 0.2);
  margin-bottom: 48px;
}

.jzk-page .jzk-hero__grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 60px;
  align-items: start;
}

.jzk-page .jzk-hero__copy h1 {
  font-size: clamp(32px, 4.2vw, 56px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -0.04em;
  margin-bottom: 28px;
}

.jzk-page .jzk-hero__lead {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--ink, #20211e);
  margin-bottom: 16px;
}

.jzk-page .jzk-hero__price {
  font-size: 16px;
  line-height: 1.9;
  color: var(--ink, #20211e);
  margin-bottom: 12px;
}

.jzk-page .jzk-hero__target {
  font-size: 15px;
  font-weight: 500;
  color: var(--rust, #b5472b);
  margin-bottom: 16px;
}

.jzk-page .jzk-hero__note {
  font-size: 13px;
  line-height: 1.8;
  color: var(--color-muted, #686a62);
  margin-bottom: 32px;
}

.jzk-page .jzk-hero__cta {
  margin-top: 10px;
}

/* 自動化フロービジュアル（HTML/CSS描画） */
.jzk-page .jzk-flow-visual {
  border: 1px solid var(--ink, #20211e);
  background: var(--paper, #f2f0e9);
  box-shadow: 8px 8px 0 var(--ink, #20211e);
  padding: 28px 24px;
}

.jzk-page .jzk-flow-visual__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-flow-visual__title {
  font: 500 12px/1 'Outfit', sans-serif;
  letter-spacing: 0.12em;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-flow-visual__live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: 500 10px/1 'Outfit', sans-serif;
  letter-spacing: 0.08em;
  color: var(--rust, #b5472b);
}

.jzk-page .jzk-flow-visual__live::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.jzk-page .jzk-flow-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.jzk-page .jzk-flow-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(32, 33, 30, 0.2);
  background: #ffffff;
  transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.jzk-page .jzk-flow-step.is-active {
  border-color: var(--ink, #20211e);
  background: #ffffff;
  box-shadow: 4px 4px 0 var(--rust, #b5472b);
}

.jzk-page .jzk-flow-step__badge {
  font: 600 11px/1.4 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
  border: 1px solid var(--rust, #b5472b);
  padding: 2px 6px;
  white-space: nowrap;
}

.jzk-page .jzk-flow-step.is-active .jzk-flow-step__badge {
  background: var(--rust, #b5472b);
  color: #ffffff;
}

.jzk-flow-step__content {
  flex: 1;
}

.jzk-page .jzk-flow-step__label {
  font-size: 11px;
  color: var(--color-muted, #686a62);
  margin-bottom: 4px;
}

.jzk-page .jzk-flow-step__text {
  font-size: 13px;
  font-weight: 500;
  color: var(--ink, #20211e);
  line-height: 1.5;
}

.jzk-page .jzk-flow-visual__caption {
  margin-top: 18px;
  font-size: 11px;
  color: var(--color-muted, #686a62);
  text-align: right;
}

/* --------------------------------------------------------------------------
   02 / FOR WHOM
   -------------------------------------------------------------------------- */
.jzk-page .jzk-target {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-target__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.jzk-page .jzk-target__body {
  min-width: 0;
}

.jzk-page .jzk-target__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
}

.jzk-page .jzk-target__list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: baseline;
  padding: 24px 0;
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-target__list li:first-child {
  border-top: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-target__num {
  font: 600 15px/1 'Outfit', sans-serif;
  letter-spacing: 0.08em;
  color: var(--rust, #b5472b);
}

.jzk-page .jzk-target__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink, #20211e);
}

/* --------------------------------------------------------------------------
   03 / WHAT WE PROVIDE
   -------------------------------------------------------------------------- */
.jzk-page .jzk-contents {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-contents__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin: 0 0 44px;
}

.jzk-page .jzk-contents__col {
  border: 1px solid var(--ink, #20211e);
  padding: 36px 32px;
  background: #ffffff;
  box-shadow: 6px 6px 0 var(--ink, #20211e);
  display: flex;
  flex-direction: column;
}

.jzk-page .jzk-contents__col h3 {
  font-size: 20px;
  font-weight: 600;
  color: var(--ink, #20211e);
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink, #20211e);
  margin-bottom: 16px;
}

.jzk-page .jzk-contents__desc {
  font-size: 14px;
  line-height: 1.85;
  color: var(--ink, #20211e);
  margin: 0 0 20px;
}

.jzk-page .jzk-contents__label {
  font: 600 11px/1.4 'Outfit', 'Noto Sans JP', sans-serif;
  letter-spacing: 0.08em;
  color: var(--rust, #b5472b);
  margin-bottom: 12px;
  text-transform: uppercase;
}

.jzk-page .jzk-contents__checklist {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.jzk-page .jzk-contents__checklist li {
  position: relative;
  padding-left: 22px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-contents__checklist li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--rust, #b5472b);
  font-weight: 700;
  font-size: 14px;
}

.jzk-page .jzk-contents__menu-list {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.jzk-page .jzk-contents__menu-list li {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  align-items: baseline;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-contents__menu-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.jzk-page .jzk-contents__menu-num {
  font: 600 13px/1 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
}

.jzk-page .jzk-contents__menu-body {
  font-size: 13px;
  line-height: 1.7;
}

.jzk-page .jzk-contents__menu-name {
  font-weight: 600;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-contents__menu-sep {
  margin: 0 4px;
  color: var(--color-muted, #686a62);
}

.jzk-page .jzk-contents__menu-text {
  color: var(--color-text, #54564e);
}

.jzk-page .jzk-contents__col .jzk-note {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(32, 33, 30, 0.1);
}

/* ③ Web広告運用オプション（全幅1枚） */
.jzk-page .jzk-contents__col--full {
  margin: 0 0 44px;
}

.jzk-page .jzk-contents__opt-tag {
  display: inline-block;
  align-self: flex-start;
  font: 700 11px/1 'Outfit', sans-serif;
  letter-spacing: 0.14em;
  color: #ffffff;
  background: var(--rust, #b5472b);
  padding: 4px 8px;
  margin-bottom: 14px;
}

.jzk-page .jzk-contents__opt-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 12px;
  align-items: start;
}

.jzk-page .jzk-contents__opt-pricing {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.jzk-page .jzk-contents__opt-pricing li {
  position: relative;
  padding-left: 18px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-contents__opt-pricing li::before {
  content: '・';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--rust, #b5472b);
  font-weight: 700;
}

.jzk-page .jzk-contents__opt-example {
  border: 1px solid var(--rule, #cbc9bf);
  border-top: 2px solid var(--rust, #b5472b);
  background: var(--paper, #f2f0e9);
  padding: 16px 18px;
}

.jzk-page .jzk-contents__opt-example-calc {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #20211e);
  line-height: 1.6;
}

.jzk-page .jzk-contents__opt-example-sub {
  font-size: 14px;
  font-weight: 700;
  color: var(--rust, #b5472b);
  margin-top: 6px;
  line-height: 1.6;
}

.jzk-page .jzk-contents__opt-example-note {
  font-size: 11.5px;
  line-height: 1.6;
  color: var(--color-muted, #686a62);
  margin: 6px 0 0;
}

.jzk-page .jzk-contents__opt-notes {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(32, 33, 30, 0.1);
}

.jzk-page .jzk-contents__opt-notes .jzk-note {
  margin-top: 6px;
}

.jzk-page .jzk-contents__opt-notes .jzk-note:first-child {
  margin-top: 0;
}

/* B-2. 導入イメージ（横長1枚、ヘアライン枠） */
.jzk-page .jzk-intro-image {
  margin: 0 0 44px;
  padding: 32px 28px;
  border: 1px solid var(--ink, #20211e);
  background: #ffffff;
  box-shadow: 6px 6px 0 var(--ink, #20211e);
}

.jzk-page .jzk-intro-image__title {
  font-size: 16px;
  font-weight: 600;
  color: var(--ink, #20211e);
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-intro-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: stretch;
  gap: 12px;
  margin-bottom: 14px;
}

.jzk-page .jzk-intro-flow__step {
  border: 1px solid var(--rule, #cbc9bf);
  background: var(--paper, #f2f0e9);
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.jzk-page .jzk-intro-flow__badge {
  font: 600 11px/1.4 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
  display: inline-block;
  letter-spacing: 0.04em;
}

.jzk-page .jzk-intro-flow__text {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--ink, #20211e);
  margin: 0;
}

.jzk-page .jzk-intro-flow__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font: 300 20px/1 'Outfit', sans-serif;
  color: var(--color-muted, #686a62);
}

.jzk-page .jzk-intro-image__note {
  font-size: 12px;
  line-height: 1.8;
  color: var(--color-muted, #686a62);
  margin: 14px 0 0;
  text-align: right;
}

/* --------------------------------------------------------------------------
   04 / PRICE & SUBSIDY + SIMULATOR
   -------------------------------------------------------------------------- */
.jzk-page .jzk-price {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

/* 3ステップ数字ブロック */
.jzk-page .jzk-price__flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin: 48px 0 44px;
  padding: 36px 28px;
  border: 1px solid var(--ink, #20211e);
  background: #ffffff;
}

.jzk-page .jzk-price__block {
  text-align: center;
}

.jzk-page .jzk-price__block.is-primary {
  border-top: 3px solid var(--rust, #b5472b);
  padding-top: 12px;
}

.jzk-page .jzk-price__block-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--color-muted, #686a62);
  margin-bottom: 8px;
}

.jzk-page .jzk-price__num {
  font: 500 clamp(38px, 4.5vw, 54px)/1 'Outfit', sans-serif;
  color: var(--ink, #20211e);
  letter-spacing: -0.04em;
}

.jzk-page .jzk-price__block.is-primary .jzk-price__num {
  color: var(--rust, #b5472b);
}

.jzk-page .jzk-price__unit {
  font-size: 16px;
  margin-left: 4px;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-price__block-sub {
  font-size: 12px;
  color: var(--color-muted, #686a62);
  margin-top: 6px;
}

.jzk-page .jzk-price__arrow {
  font: 300 24px/1 'Outfit', sans-serif;
  color: var(--color-muted, #686a62);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.jzk-page .jzk-price__opt-note {
  margin: -24px 0 32px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-muted, #686a62);
  text-align: center;
}

.jzk-page .jzk-price__reason {
  margin: 32px 0 54px;
  padding: 28px;
  background: var(--color-surface, #e8e6df);
  border-left: 4px solid var(--ink, #20211e);
}

.jzk-page .jzk-price__reason h3 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
}

.jzk-page .jzk-price__reason p {
  font-size: 14px;
  line-height: 1.9;
  margin: 0;
}

/* シミュレーター */
.jzk-page .jzk-simulator {
  border: 1px solid var(--ink, #20211e);
  background: #ffffff;
  padding: 36px 32px;
  box-shadow: 8px 8px 0 var(--ink, #20211e);
}

.jzk-page .jzk-simulator h3 {
  font-size: 18px;
  font-weight: 600;
  color: var(--ink, #20211e);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-calc__intro {
  font-size: 14px;
  line-height: 1.85;
  color: var(--color-text, #54564e);
  margin: 0 0 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(32, 33, 30, 0.12);
}

/* 式の見える化 */
.jzk-page .jzk-calc__formula {
  display: grid;
  grid-template-columns: 1fr auto 1.35fr auto 1fr;
  align-items: stretch;
  gap: 14px;
  margin: 0 0 28px;
}

.jzk-page .jzk-calc__formula-col {
  padding: 20px 18px;
  border: 1px solid var(--rule, #cbc9bf);
  background: var(--paper, #f2f0e9);
  display: flex;
  flex-direction: column;
}

.jzk-page .jzk-calc__formula-col--a {
  border-color: var(--rule, #cbc9bf);
}

.jzk-page .jzk-calc__formula-col--b {
  background: #ffffff;
  border-color: var(--ink, #20211e);
  box-shadow: 4px 4px 0 var(--ink, #20211e);
}

.jzk-page .jzk-calc__formula-col--total {
  border-color: var(--ink, #20211e);
  background: #ffffff;
}

.jzk-page .jzk-calc__formula-tag {
  font: 600 11px/1.4 'Outfit', 'Noto Sans JP', sans-serif;
  letter-spacing: 0.04em;
  color: var(--rust, #b5472b);
  margin-bottom: 12px;
  display: block;
}

.jzk-page .jzk-calc__formula-amount {
  font: 500 clamp(24px, 2.5vw, 32px)/1 'Outfit', sans-serif;
  letter-spacing: -0.03em;
  color: var(--ink, #20211e);
  margin-bottom: 10px;
}

.jzk-page .jzk-calc__formula-unit {
  font-size: 15px;
  margin-left: 4px;
  letter-spacing: 0;
}

.jzk-page .jzk-calc__formula-desc {
  font-size: 12px;
  line-height: 1.65;
  color: var(--color-muted, #686a62);
  margin: auto 0 0;
}

.jzk-page .jzk-calc__formula-total {
  font: 500 clamp(24px, 2.5vw, 32px)/1 'Outfit', sans-serif;
  letter-spacing: -0.03em;
  color: var(--ink, #20211e);
  margin-bottom: 10px;
}

.jzk-page .jzk-calc__formula-op {
  display: flex;
  align-items: center;
  justify-content: center;
  font: 300 24px/1 'Outfit', sans-serif;
  color: var(--color-muted, #686a62);
}

.jzk-page .jzk-calc__field {
  margin-bottom: 0;
}

.jzk-page .jzk-calc__label {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink, #20211e);
  margin-bottom: 6px;
}

.jzk-page .jzk-calc__desc {
  font-size: 12px;
  line-height: 1.6;
  color: var(--color-muted, #686a62);
  margin-bottom: 12px;
}

.jzk-page .jzk-calc__input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.jzk-page .jzk-calc__input {
  width: 100%;
  max-width: 220px;
  padding: 10px 14px;
  font: 500 17px 'Outfit', sans-serif;
  color: var(--ink, #20211e);
  border: 1px solid var(--ink, #20211e);
  background: #ffffff;
  border-radius: 0;
}

.jzk-page .jzk-calc__input:focus-visible {
  outline: 2px solid var(--rust, #b5472b);
  outline-offset: 2px;
}

.jzk-page .jzk-calc__presets {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
}

.jzk-page .jzk-calc__preset {
  padding: 7px 12px;
  font: 500 12px/1.4 'Outfit', 'Noto Sans JP', sans-serif;
  text-align: left;
  color: var(--ink, #20211e);
  background: var(--paper, #f2f0e9);
  border: 1px solid var(--rule, #cbc9bf);
  cursor: pointer;
  border-radius: 0;
  transition: all 0.2s ease;
}

.jzk-page .jzk-calc__preset:hover {
  background: var(--ink, #20211e);
  color: #ffffff;
  border-color: var(--ink, #20211e);
}

.jzk-page .jzk-calc__preset-note {
  font-size: 11px;
  line-height: 1.6;
  color: var(--color-muted, #686a62);
  margin: 10px 0 0;
}

.jzk-page .jzk-calc__alert {
  padding: 14px 18px;
  margin: 20px 0;
  background: #fdf5f3;
  border: 1px solid var(--rust, #b5472b);
  color: var(--rust, #b5472b);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}

.jzk-page .jzk-calc__results {
  margin: 24px 0 20px;
  padding: 24px;
  background: var(--paper, #f2f0e9);
  border: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-calc__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid rgba(32, 33, 30, 0.12);
}

.jzk-page .jzk-calc__row:last-child {
  border-bottom: 0;
}

.jzk-page .jzk-calc__row.is-highlight {
  padding: 14px 0;
  border-bottom: 2px solid var(--ink, #20211e);
  margin-bottom: 6px;
}

.jzk-page .jzk-calc__row-title {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-calc__val {
  font: 500 18px 'Outfit', sans-serif;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-calc__row.is-highlight .jzk-calc__val {
  font-size: clamp(24px, 3.2vw, 32px);
  color: var(--rust, #b5472b);
}

.jzk-page .jzk-calc__breakdown {
  display: block;
  font-size: 11px;
  color: var(--color-muted, #686a62);
  margin-top: 4px;
  text-align: right;
}

.jzk-page .jzk-calc__cap-note {
  font-size: 12px;
  font-weight: 500;
  color: var(--rust, #b5472b);
  margin: 10px 0 0;
  text-align: right;
}

.jzk-page .jzk-calc__bar-block {
  margin: 24px 0 16px;
}

.jzk-page .jzk-calc__bar-header {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--color-muted, #686a62);
  margin-bottom: 8px;
}

.jzk-page .jzk-calc__bar-track {
  width: 100%;
  height: 8px;
  background: var(--color-surface-2, #deddd5);
  border: 1px solid var(--rule, #cbc9bf);
  overflow: hidden;
}

.jzk-page .jzk-calc__bar-fill {
  height: 100%;
  background: var(--rust, #b5472b);
  transition: width 0.3s ease;
}

.jzk-page .jzk-calc__note {
  font-size: 12px;
  line-height: 1.8;
  color: var(--color-muted, #686a62);
  margin-top: 16px;
}

.jzk-page .jzk-price__other-note {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-price__other-note h3 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
}

.jzk-page .jzk-price__other-note p {
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text, #54564e);
}

/* --------------------------------------------------------------------------
   05 / CHECK (Dark Section)
   -------------------------------------------------------------------------- */
.jzk-page .jzk-check.jzk-dark {
  background-color: var(--ink, #20211e);
  color: #bdc0b3;
  border-bottom: 1px solid #3d3e37;
}

.jzk-page .jzk-check.jzk-dark .craft-kicker {
  color: #bdc0b3;
}

.jzk-page .jzk-check.jzk-dark .craft-index {
  color: var(--brand-blue, #3498db);
}

.jzk-page .jzk-check.jzk-dark .craft-title {
  color: var(--paper, #f2f0e9);
}

.jzk-page .jzk-check.jzk-dark .craft-lead {
  color: #d3d3c9;
}

.jzk-page .jzk-check__form {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.jzk-page .jzk-check__item {
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 24px 28px;
  background: rgba(255, 255, 255, 0.03);
  margin: 0;
}

.jzk-page .jzk-check__legend {
  font-size: 15px;
  line-height: 1.7;
  color: var(--paper, #f2f0e9);
  margin-bottom: 16px;
  padding: 0;
  display: block;
}

.jzk-page .jzk-check__legend-num {
  font: 600 14px 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
  margin-right: 8px;
}

.jzk-page .jzk-check__options {
  display: flex;
  gap: 20px;
}

.jzk-page .jzk-check__radio-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--paper, #f2f0e9);
  cursor: pointer;
}

.jzk-page .jzk-check__radio-label input[type="radio"] {
  accent-color: var(--rust, #b5472b);
  width: 16px;
  height: 16px;
}

.jzk-page .jzk-check__result {
  margin-top: 32px;
  padding: 24px 28px;
  border: 1px solid;
}

.jzk-page .jzk-check__result.is-success {
  background: rgba(46, 204, 113, 0.08);
  border-color: #2ecc71;
  color: #e8f8f0;
}

.jzk-page .jzk-check__result.is-warning {
  background: rgba(231, 76, 60, 0.08);
  border-color: var(--rust, #b5472b);
  color: #fdeeee;
}

.jzk-page .jzk-check__result-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 8px;
}

.jzk-page .jzk-check__result-text {
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
}

.jzk-page .jzk-check__fallback {
  margin-top: 24px;
  font-size: 13px;
  line-height: 1.8;
  color: #aaa99f;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 16px;
}

/* --------------------------------------------------------------------------
   06 / ROLES
   -------------------------------------------------------------------------- */
.jzk-page .jzk-roles {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-roles__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 48px;
}

.jzk-page .jzk-roles__card {
  border: 1px solid var(--ink, #20211e);
  background: #ffffff;
  padding: 36px 32px;
  box-shadow: 6px 6px 0 var(--ink, #20211e);
}

.jzk-page .jzk-roles__card h3 {
  font-size: 18px;
  font-weight: 600;
  color: var(--ink, #20211e);
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink, #20211e);
  margin-bottom: 20px;
}

.jzk-page .jzk-roles__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.jzk-page .jzk-roles__list li {
  position: relative;
  padding-left: 20px;
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text, #54564e);
}

.jzk-page .jzk-roles__list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--rust, #b5472b);
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   07 / SCHEDULE
   -------------------------------------------------------------------------- */
.jzk-page .jzk-schedule {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-countdown-banner {
  border: 1px solid var(--ink, #20211e);
  background: #ffffff;
  padding: 32px;
  margin: 40px 0 36px;
  box-shadow: 6px 6px 0 var(--ink, #20211e);
  text-align: center;
}

.jzk-page .jzk-countdown-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-muted, #686a62);
  margin-bottom: 10px;
}

.jzk-page .jzk-countdown-val {
  font: 500 clamp(36px, 5vw, 64px)/1 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
  letter-spacing: -0.04em;
}

.jzk-page .jzk-countdown-unit {
  font-size: 20px;
  color: var(--ink, #20211e);
  margin-left: 6px;
}

.jzk-page .jzk-countdown-split {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}

.jzk-page .jzk-countdown-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.jzk-page .jzk-countdown-sep {
  font-size: 28px;
  color: var(--rule, #cbc9bf);
  user-select: none;
}

.jzk-page .jzk-countdown-val.is-ended {
  font-size: clamp(24px, 3.5vw, 36px);
  color: var(--color-muted, #686a62);
}

.jzk-page .jzk-countdown-val.is-today {
  font-size: clamp(28px, 4.5vw, 48px);
}

@media (max-width: 768px) {
  .jzk-page .jzk-countdown-split {
    flex-direction: column;
    gap: 20px;
  }

  .jzk-page .jzk-countdown-sep {
    display: none;
  }
}

.jzk-page .jzk-timeline-closed {
  padding: 24px;
  background: #fdf5f3;
  border: 1px solid var(--rust, #b5472b);
  color: var(--rust, #b5472b);
  font-weight: 600;
  font-size: 16px;
  text-align: center;
  margin: 36px 0;
}

.jzk-page .jzk-timeline-steps {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 40px;
}

.jzk-page .jzk-timeline-step {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border: 1px solid var(--rule, #cbc9bf);
  background: #ffffff;
}

.jzk-page .jzk-timeline-step__info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.jzk-page .jzk-timeline-step__date {
  font: 600 13px 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
}

.jzk-page .jzk-timeline-step__desc {
  font-size: 15px;
  font-weight: 500;
  color: var(--ink, #20211e);
}

.jzk-page .jzk-timeline-badge {
  font: 600 12px/1 'Outfit', 'Noto Sans JP', sans-serif;
  padding: 6px 12px;
  border: 1px solid;
  white-space: nowrap;
}

.jzk-page .jzk-timeline-badge.is-upcoming {
  border-color: var(--rule, #cbc9bf);
  color: var(--color-muted, #686a62);
  background: var(--paper, #f2f0e9);
}

.jzk-page .jzk-timeline-badge.is-current {
  border-color: var(--rust, #b5472b);
  color: #ffffff;
  background: var(--rust, #b5472b);
}

.jzk-page .jzk-timeline-badge.is-done {
  border-color: var(--ink, #20211e);
  color: var(--ink, #20211e);
  background: var(--color-surface, #e8e6df);
}

/* --------------------------------------------------------------------------
   08 / FLOW
   -------------------------------------------------------------------------- */
.jzk-page .jzk-flow {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-flow__list {
  margin: 44px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.jzk-page .jzk-flow__item {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 18px 24px;
  border: 1px solid var(--rule, #cbc9bf);
  background: #ffffff;
}

.jzk-page .jzk-flow__num {
  font: 600 16px/1 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
  min-width: 24px;
}

.jzk-page .jzk-flow__text {
  font-size: 15px;
  font-weight: 500;
  color: var(--ink, #20211e);
}

/* --------------------------------------------------------------------------
   09 / FAQ
   -------------------------------------------------------------------------- */
.jzk-page .jzk-faq {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-faq__list {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.jzk-page .jzk-faq details {
  border: 1px solid var(--rule, #cbc9bf);
  background: #ffffff;
  padding: 20px 24px;
}

.jzk-page .jzk-faq details[open] {
  border-color: var(--ink, #20211e);
}

.jzk-page .jzk-faq summary {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink, #20211e);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.jzk-page .jzk-faq summary::-webkit-details-marker {
  display: none;
}

.jzk-page .jzk-faq summary::after {
  content: '+';
  font: 300 22px/1 'Outfit', sans-serif;
  color: var(--rust, #b5472b);
  transition: transform 0.2s ease;
}

.jzk-page .jzk-faq details[open] summary::after {
  content: '−';
}

.jzk-page .jzk-faq__answer {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(32, 33, 30, 0.1);
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text, #54564e);
}

/* --------------------------------------------------------------------------
   10 / NOTES
   -------------------------------------------------------------------------- */
.jzk-page .jzk-notes {
  border-bottom: 1px solid var(--rule, #cbc9bf);
}

.jzk-page .jzk-notes__list {
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.jzk-page .jzk-notes__list li {
  position: relative;
  padding-left: 24px;
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-muted, #686a62);
}

.jzk-page .jzk-notes__list li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--rust, #b5472b);
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   11 / CONTACT
   -------------------------------------------------------------------------- */
.jzk-page .jzk-contact {
  padding-block: 100px;
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .jzk-page .jzk-hero__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .jzk-page .jzk-contents__grid,
  .jzk-page .jzk-contents__opt-grid,
  .jzk-page .jzk-roles__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .jzk-page .jzk-intro-flow {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .jzk-page .jzk-intro-flow__arrow {
    transform: rotate(90deg);
    margin: 2px auto;
  }
  .jzk-page .jzk-calc__formula {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .jzk-page .jzk-calc__formula-op {
    margin: 2px auto;
  }
  .jzk-page .jzk-price__flow {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 24px 20px;
  }
  .jzk-page .jzk-price__opt-note {
    margin: -24px 0 24px;
    text-align: left;
  }
  .jzk-page .jzk-price__arrow {
    transform: rotate(90deg);
    margin: 4px auto;
  }
  .jzk-page .jzk-price__arrow:first-child {
    display: none;
  }
}

@media (max-width: 767px) {
  .jzk-page .craft-section-heading {
    margin-bottom: 36px;
  }
  .jzk-page .jzk-head__body .craft-lead {
    margin-top: 18px;
  }
  .jzk-page .jzk-target__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .jzk-page .jzk-target__list li {
    padding: 18px 0;
    gap: 16px;
  }
  .jzk-page .jzk-figure--wide {
    margin-bottom: 28px;
  }
}

@media (max-width: 600px) {
  .jzk-page .jzk-hero {
    padding-top: calc(var(--header-height, 76px) + 24px);
  }
  .jzk-page .jzk-hero__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .jzk-page .jzk-flow-visual {
    padding: 20px 16px;
  }
  .jzk-page .jzk-simulator {
    padding: 24px 18px;
  }
  .jzk-page .jzk-calc__input-wrap {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
  .jzk-page .jzk-calc__input {
    max-width: 200px;
    width: auto;
    flex: 1 1 auto;
  }
  .jzk-page .jzk-calc__input-unit {
    white-space: nowrap;
    flex-shrink: 0;
  }
  .jzk-page .jzk-check__options {
    flex-direction: column;
    gap: 10px;
  }
  .jzk-page .jzk-timeline-step {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .jzk-page .jzk-flow-step,
  .jzk-page .jzk-calc__bar-fill,
  .jzk-page .jzk-calc__preset,
  .jzk-page .jzk-figure__frame,
  .jzk-page .jzk-figure__frame img {
    transition: none !important;
  }
}

/* Mobile: keep explicit heading lines intact */
@media (max-width: 767px) {
  body.jzk-page .jzk-head__body .craft-title { font-size: clamp(24px, 6.6vw, 30px); }
}
