/* ===== Hero fold (name-origin collapsible) ===== */
.hero-fold { border: 1px dashed rgba(255,255,255,.4); padding: 16px 20px; margin-top: 28px; max-width: 44em; background-color: color-mix(in srgb, var(--ink-900) 20%, transparent);}
.hero-fold__summary { cursor: pointer; font-size: 16px; color: var(surface-white); list-style: none; }
.hero-fold__summary::-webkit-details-marker { display: none; }
.hero-fold__summary::before { content: "+ "; font-weight: 700; }
.hero-fold[open] .hero-fold__summary::before { content: "− "; }
.hero-fold__body { margin: 14px 0 0; font-size: 16px; line-height: 1.8; color: var(surface-white); }

/* ===== 6G intro (single column - easier to read) ===== */
.g-intro-grid { display: grid; grid-template-columns: 1fr; gap: 4px; margin-bottom: 56px; max-width: 46em; }
.g-intro-grid p { margin: 0 0 14px; color: var(--text-body); font-size: 16px; line-height: 1.9; }
.g-intro-grid p:last-child { margin-bottom: 0; }

/* ===== 6G framework — hexagon cells (ref: hirameki-nagato.com/nagato_6g/) ===== */
.g-framework { display: grid; grid-template-columns: 1fr 2fr; gap: 24px; align-items: start; }
.g-framework__group { display: block; }
.g-framework__label { color: var(--ink-900); font-size: 16px; font-weight: 700; letter-spacing: .04em; margin: 0 0 20px; }
.g-framework__grid { display: grid; gap: 22px 14px; background: none; border: none; }
.g-framework__grid--2 { grid-template-columns: 1fr 1fr; }
.g-framework__grid--4 { grid-template-columns: repeat(4, 1fr); }
.g-framework__item { position: relative; padding-bottom: 12%; }
.g-framework__hex {
  width: 100%; aspect-ratio: 1092 / 1262;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background: linear-gradient(160deg, var(--blue-600) 0%, var(--ink-900) 130%);
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  padding: 14% 12%; color: #fff;
}
.g-framework__no {
  position: absolute; right: 4%; bottom: 4px; width: 36%; aspect-ratio: 1 / 1; border-radius: 50%;
  background: #fff; color: var(--blue-600); display: flex; align-items: center; justify-content: center;
  font-family: var(--font-latin); font-weight: 700; font-size: 24px;
  border: 4px solid var(--blue-600); box-shadow: 0 10px 20px -10px rgba(20,22,28,.4);
}
.g-framework__word { font-family: var(--font-latin); font-weight: 700; font-size: 21px; margin: 0 0 4px; }
.g-framework__ja { margin: 0 0 10px; font-size: 13px; font-weight: 700; }
.g-framework__desc { margin: 0; font-size: 12.5px; line-height: 1.6; opacity: .9; }

/* ===== Roadmap steps — stacked vertically on this page ===== */
.step-flow--vertical { grid-template-columns: 1fr; gap: 40px; }
.step-flow--vertical .step-flow__item { flex-flow: row wrap; align-items: stretch; overflow: hidden; }
.step-flow--vertical .step-flow__head { flex: 0 0 220px; border-bottom: none; border-right: 1px solid var(--border-sand); display: flex; flex-direction: column; justify-content: center; }
.step-flow--vertical .step-flow__title { font-size: 19px; }
.step-flow--vertical .step-flow__body { flex: 1 1 0; min-width: 0; display: flex; align-items: center; }
.step-flow--vertical .step-flow__foot { flex: 0 0 100%; border-top: 1px dashed var(--border-warm); border-left: none; background: var(--blue-100); }
.step-flow--vertical .step-flow__note { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.step-flow--vertical .step-flow__note strong { font-size: 16px; background: #fff; padding: 0 3px; text-decoration: underline; text-decoration-color: var(--blue-600); text-underline-offset: 3px; }

/* ===== Subsidy cards ===== */
.subsidy-card { border: 1px solid var(--border-sand); }
/* Within a side-by-side pair, head/body are lifted out of their card wrapper (display:contents)
   so the two heads — and the two bodies — can share a grid row and match height. Border moves
   from the wrapper onto head/body themselves so the card frame still renders either way. */
.subsidy-grid-2 > .subsidy-card { border: none; }
.subsidy-grid-2 .subsidy-card__head { border: 1px solid var(--border-sand); }
.subsidy-grid-2 .subsidy-card__body { border: 1px solid var(--border-sand); border-top: none; }
.subsidy-card__head { background: var(--surface-sand); border-bottom: 1px solid var(--border-sand); padding: 20px 28px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.subsidy-card__title { font-family: var(--font-display); font-weight: 700; font-size: 21px; margin: 0; }
.subsidy-card__badge { border: 1px solid var(--ink-900); font-size: 14px; padding: 3px 10px; white-space: nowrap; }
.subsidy-card__body { padding: 28px; }
.subsidy-main-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 24px; align-items: start; }
.subsidy-sub-card { border: 1px solid var(--border-sand); }
.subsidy-sub-card__head { margin: 0; background: var(--surface-card); border-bottom: 1px solid var(--border-sand); padding: 12px 18px; font-weight: 700; font-size: 16px; }
.subsidy-sub-card__head span { font-weight: 400; font-size: 14px; color: var(--text-meta); margin-left: 10px; }
.subsidy-sub-card__body { padding: 16px 18px; }
.subsidy-amount { margin: 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.subsidy-amount span { font-size: 14px; color: var(--text-meta); }
.subsidy-amount strong { font-family: var(--font-latin); font-weight: 700; font-size: 26px; color: var(--ink-900); }
.subsidy-grid-2 { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr; grid-auto-flow: column; row-gap: 0; column-gap: 20px; }
.subsidy-grid-2 > .subsidy-card { display: contents; }
.subsidy-highlight { margin: 0 0 14px; background: var(--surface-card); border: 1px solid var(--border-sand); padding: 10px 14px; font-size: 14px; font-weight: 700; }
.subsidy-photo-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* ===== Read cards (satellite office primer) ===== */
.read-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.read-card { background: #fff; border: 1px solid var(--border-sand); border-radius: var(--radius-image) var(--radius-image) 0 0; }
.read-card__body { padding: 26px 28px; }
.read-card__title { font-family: var(--font-display); font-weight: 700; font-size: 17px; margin: 0 0 12px; line-height: 1.6; }
.read-card__body p { margin: 0 0 10px; color: var(--text-body); font-size: 14px; line-height: 1.9; }
.read-card__body p:last-child { margin-bottom: 0; }

/* ===== Case study ===== */
.case-study { display: grid; grid-template-columns: 280px 1fr; gap: 36px; align-items: start; }
.case-study__media { display: block; }
.case-study__caption { margin: 12px 0 0; font-size: 14px; color: var(--text-meta); line-height: 1.8; }
.case-study__eyebrow { margin: 0 0 8px; font-size: 14px; letter-spacing: .06em; color: var(--text-meta); }
.case-study__title { font-family: var(--font-display); font-weight: 900; font-size: 28px; margin: 0 0 24px; }
.case-study__body p { margin: 0 0 16px; color: var(--text-body); font-size: 16px; line-height: 2.05; }
.case-study__body p:last-child { margin-bottom: 0; }

@media (max-width: 767px) {
  .g-framework { grid-template-columns: 1fr; }
  .g-framework__grid--2, .g-framework__grid--4 { grid-template-columns: 1fr 1fr; }
  .step-flow--vertical .step-flow__item { flex-direction: column; }
  .step-flow--vertical .step-flow__head { flex: none; border-right: none; border-bottom: 1px solid var(--border-sand); }
  .step-flow--vertical .step-flow__foot { flex: none; border-left: none; border-top: 1px dashed var(--border-warm); }
  .subsidy-main-grid { grid-template-columns: 1fr; }
  .subsidy-grid-2 { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; gap: 20px; }
  .subsidy-grid-2 > .subsidy-card { display: block; }
  .subsidy-photo-2col { grid-template-columns: 1fr 1fr; }
  .read-grid { grid-template-columns: 1fr; }
  .case-study { grid-template-columns: 1fr; }
}
