
.ix-sec { padding-block: clamp(80px, 11vw, 144px); border-top: 1px solid var(--line); }
.ix-k { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; font-size: .8125rem; font-weight: 700; letter-spacing: .16em; color: var(--ink-2); }
.ix-k::before { content: ""; width: 24px; height: 1.5px; background: var(--accent); flex: none; }
.ix-k--night { color: var(--night-sub); }
.ix-h2 { font-size: clamp(1.75rem, 5vw, 2.875rem); line-height: 1.4; max-width: 20em; }
.ix-lead { margin-top: 20px; max-width: 40em; color: var(--ink-2); }
.ix-small { margin-top: 28px; max-width: 46em; font-size: .875rem; line-height: 1.9; color: var(--ink-2); }
.ix-tag { margin-top: 18px; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: .875rem; font-weight: 700; color: var(--accent); }
.ix-tag span { padding: 1px 8px; background: var(--accent); color: #fff; font-size: .8125rem; letter-spacing: .1em; }

.words { margin-top: clamp(36px, 5vw, 56px); display: grid; grid-template-columns: 1fr 1fr; border-top: 1.5px solid var(--ink); }
@media (min-width: 860px) { .words { grid-template-columns: repeat(4, 1fr); } }
.words li { display: grid; align-content: start; gap: 8px; padding: 22px 14px 24px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.words li:nth-child(odd) { padding-right: 18px; }
@media (min-width: 860px) { .words li { padding: 28px 24px 30px 0; } }
.words b { font-size: clamp(1.625rem, 6.6vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: .02em; font-feature-settings: "palt" 1; white-space: nowrap; }
.words span { font-size: .875rem; color: var(--ink-2); line-height: 1.75; word-break: auto-phrase; }
.ix-close { margin-top: clamp(40px, 6vw, 64px); display: grid; gap: 8px; font-size: clamp(1.375rem, 4.6vw, 2rem); font-weight: 800; line-height: 1.45; }
.ix-close span { font-size: 1rem; font-weight: 600; color: var(--ink-2); line-height: 1.8; }

.svc { margin-top: 28px; display: grid; gap: 0; border-top: 1.5px solid var(--ink); }
@media (min-width: 900px) { .svc { grid-template-columns: 1fr 1fr; column-gap: 48px; } }
.svc__item { display: grid; align-content: start; gap: 10px; padding: 28px 0 30px; border-bottom: 1px solid var(--line); min-width: 0; }
.svc__head { display: flex; align-items: baseline; gap: 14px; }
.svc__no { font-family: var(--mono); font-size: .8125rem; color: var(--accent); }
.svc__t { font-size: clamp(1.375rem, 4.4vw, 1.75rem); font-weight: 800; }
.svc__ba { display: grid; grid-template-columns: 4.6em minmax(0, 1fr); gap: 10px; font-size: .9375rem; line-height: 1.8; color: var(--ink-2); }
.svc__ba--a { color: var(--ink); font-weight: 600; }
.svc__b, .svc__a { align-self: start; margin-top: .3em; padding: 0 6px; border: 1px solid var(--line-strong); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-align: center; line-height: 1.7; color: var(--ink-3); }
.svc__a { border-color: var(--accent); color: var(--accent); }
.svc__more { margin-top: 4px; }
.svc__more summary { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; list-style: none; font-size: .875rem; font-weight: 700; letter-spacing: .06em; }
.svc__more summary::-webkit-details-marker { display: none; }
.svc__more summary::after { content: ""; width: 10px; height: 10px; background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat; transition: transform .3s var(--ease); }
.svc__more[open] summary::after { transform: rotate(45deg); }
.svc__more summary:hover { color: var(--accent); }
.svc__dl { margin: 6px 0 0; padding: 18px 20px; background: var(--card); border: 1px solid var(--line); display: grid; gap: 12px; }
.svc__dl div { display: grid; gap: 2px; }
.svc__dl dt { font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: var(--accent); }
.svc__dl dd { margin: 0; font-size: .9375rem; line-height: 1.8; color: var(--ink-2); }
.svc__self { margin-top: 6px; font-size: .8125rem; font-weight: 700; color: var(--ink-3); }
.svc__self::before { content: "― "; color: var(--accent); }

.mtx { margin-top: clamp(32px, 5vw, 52px); border-top: 1.5px solid var(--ink); }
.mtx__row { display: grid; gap: 6px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.mtx__row--head { display: none; }
.mtx__svc { font-weight: 800; font-size: 1.0625rem; }
.mtx__row span[role="cell"] { display: grid; grid-template-columns: 6.2em minmax(0, 1fr); gap: 8px; font-size: .9375rem; line-height: 1.75; color: var(--ink-2); }
.mtx__k { font-style: normal; align-self: start; margin-top: .25em; padding: 0 6px; font-size: .6875rem; font-weight: 700; letter-spacing: .04em; line-height: 1.8; text-align: center; border: 1px solid var(--line-strong); color: var(--ink-3); }
.mtx__row span[role="cell"]:nth-child(2) .mtx__k { border-color: var(--accent); color: var(--accent); }
@media (min-width: 860px) {
  .mtx__row { grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; padding: 22px 0; }
  .mtx__row--head { display: grid; padding: 0 0 10px; font-size: .75rem; font-weight: 700; letter-spacing: .14em; color: var(--ink-3); border-bottom: 1px solid var(--ink); }
  .mtx__row--head span:nth-child(2) { color: var(--accent); }
  .mtx__row span[role="cell"] { display: block; }
  .mtx__k { display: none; }
  .mtx__row span[role="cell"]:nth-child(2) { color: var(--ink); font-weight: 600; }
}

.route6 { position: relative; margin-top: clamp(36px, 5vw, 56px); display: grid; gap: 0; max-width: 46em; }
.route6::before, .route6::after { content: ""; position: absolute; left: 9px; top: 12px; bottom: 12px; width: 1.5px; }
.route6::before { background: var(--line-strong); }
.route6::after { background: var(--accent); transform-origin: top; transform: scaleY(0); opacity: 0; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .route6::after { opacity: 1; animation: ix-grow linear both; animation-timeline: view(); animation-range: cover 10% cover 70%; }
  }
}
@keyframes ix-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.route6 li { position: relative; padding: 0 0 30px 44px; }
.route6 li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--ink); background: var(--paper); z-index: 1; }
.route6__no { font-family: var(--mono); font-size: .8125rem; color: var(--accent); }
.route6 h3 { font-size: clamp(1.25rem, 4vw, 1.625rem); font-weight: 800; line-height: 1.4; }
.route6 p { margin-top: 4px; font-size: .9375rem; line-height: 1.85; color: var(--ink-2); }
.route6__agree { margin: 4px 0 30px; padding: 16px 18px 18px 44px !important; border: 1px dashed var(--accent); }
.route6__agree::before { display: none; }
.route6__stamp { position: absolute; left: -12px; top: 14px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 1.5px solid var(--accent); border-radius: 50%; background: var(--paper); color: var(--accent); font-size: .75rem; font-weight: 700; }
.keep { margin-top: 12px; padding: 20px 22px; background: var(--paper-2); max-width: 46em; }
.keep__h { font-weight: 800; }
.keep__list { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.keep__list li { padding: 4px 14px; border: 1px dashed var(--accent); border-radius: 999px; font-size: .875rem; font-weight: 600; color: var(--ink-2); background: var(--paper); }

.ix-method { padding-block: clamp(96px, 14vw, 184px); background: var(--night); color: var(--night-text); }
.ix-method__title { display: grid; gap: 4px; font-size: clamp(2.5rem, 11vw, 5.5rem); font-weight: 800; line-height: 1.2; letter-spacing: .02em; text-wrap: initial; }
.ix-method__title em { background: linear-gradient(var(--accent-night), var(--accent-night)) no-repeat 0 92% / 100% .07em; }
.ix-method__sub { margin-top: 28px; font-size: clamp(1.125rem, 3.6vw, 1.5rem); font-weight: 700; color: var(--night-sub); }
.ix-method__means { margin-top: clamp(36px, 5vw, 56px); display: grid; gap: 12px; max-width: 52em; font-size: .9375rem; line-height: 1.9; color: var(--night-sub); }
.ix-method__means b { display: inline-block; min-width: 7em; margin-right: 10px; color: var(--night-text); }
.ix-method__means b.is-keep { color: var(--accent-night); }
.ix-method__foot { margin-top: 28px; max-width: 40em; font-weight: 700; }
.ix-method :focus-visible { outline-color: var(--accent-night); }

.feeline { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 10px 0; font-weight: 700; font-size: .9375rem; counter-reset: fl; }
.feeline li { counter-increment: fl; display: flex; align-items: center; }
.feeline li::before { content: counter(fl, decimal-leading-zero); margin-right: 8px; font-family: var(--mono); font-weight: 400; font-size: .75rem; color: var(--accent); }
.feeline li:not(:last-child)::after { content: "→"; margin: 0 14px; font-weight: 400; color: var(--line-strong); }
.feeline .is-agree { color: var(--accent); }
.fee3 { margin-top: clamp(36px, 5vw, 52px); display: grid; gap: 0 40px; border-top: 1.5px solid var(--ink); }
@media (min-width: 900px) { .fee3 { grid-template-columns: repeat(3, 1fr); } }
.fee3 > div { padding: 22px 0; border-bottom: 1px solid var(--line); }
.fee3 h3 { font-size: 1.0625rem; }
.fee3 p { margin-top: 8px; font-size: .9375rem; line-height: 1.85; color: var(--ink-2); }
.checks6 { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.checks6 li { display: inline-flex; align-items: center; gap: 8px; padding: 4px 14px; border: 1px solid var(--line-strong); font-size: .875rem; font-weight: 700; }
.checks6 li::before { content: ""; width: 10px; height: 10px; border: 1.5px solid var(--ink); }

.ix-about__grid { display: grid; gap: 32px; }
@media (min-width: 960px) { .ix-about__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 64px; } }
.ix-person { margin-top: 28px; display: flex; align-items: center; gap: 18px; }
.ix-person__photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; flex: none; background: var(--paper-2); }
@media (min-width: 960px) { .ix-person__photo { width: 128px; height: 128px; } }
.ix-person__role { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; color: var(--accent); }
.ix-person__name { font-size: 1.375rem; font-weight: 700; letter-spacing: .18em; line-height: 1.4; }
.ix-person__roman { font-size: .8125rem; letter-spacing: .1em; color: var(--ink-3); }
.ix-about__body { display: grid; gap: 1em; max-width: 36em; color: var(--ink-2); }
.ix-about__body > p:first-child { color: var(--ink); font-weight: 600; }
.ix-stance { margin-top: 12px; border-top: 1px solid var(--ink); }
.ix-stance li { display: grid; gap: 2px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: .9375rem; line-height: 1.8; }
.ix-stance b { color: var(--ink); font-size: 1.0625rem; }

.faq .sec-head__no::after, .consult .sec-head__no::after { margin-left: 0; }

.brand { min-height: 44px; }
.seg__btn { min-height: 44px; }
.chip span { min-height: 44px; }
.gnav__cta { min-height: 44px; }

.mtx__txt { display: block; }
.mtx__txt b { display: block; font-size: .9375rem; color: var(--ink); margin-bottom: 2px; }

.ix-method__ways { margin-top: clamp(48px, 7vw, 80px); padding-top: 28px; border-top: 1px solid #3a3f46; }
.ix-method__h3 { font-size: clamp(1.0625rem, 3vw, 1.375rem); color: var(--night-text); }
.ix-method__lead { margin-top: 10px; font-weight: 700; color: var(--night-sub); }

.ix-about__note { font-size: .875rem; color: var(--ink-3); }
.ix-method__k { font-size: .75rem; font-weight: 700; letter-spacing: .16em; color: var(--night-sub); margin-bottom: 6px; }

.ix-person__photo { object-position: 50% 40%; }
.ix-person__ai { margin-top: 4px; font-size: .6875rem; letter-spacing: .04em; color: var(--ink-3); }

.ix-about__body > p b { color: var(--ink); font-weight: 700; }
.ix-about__body > p:not(.ix-about__note) { line-height: 1.95; }

.ix-price p { margin: 0; }
.px-lead { margin-top: 22px; display: grid; gap: .6em; max-width: 40em; color: var(--ink-2); }
.px-lead strong, .ix-price strong { color: var(--ink); }
.px-block { margin-top: clamp(56px, 8vw, 96px); padding-top: clamp(28px, 4vw, 40px); border-top: 1px solid var(--line); display: grid; gap: .7em; max-width: 60em; color: var(--ink-2); }
.px-h3 { font-size: clamp(1.375rem, 4vw, 1.875rem); color: var(--ink); line-height: 1.45; }
.px-h4 { font-size: 1.0625rem; color: var(--ink); line-height: 1.5; }
.px-catch { font-size: clamp(1.0625rem, 3vw, 1.25rem); line-height: 1.7; }
.px-plans { margin-top: 18px; display: grid; gap: 16px; }
@media (min-width: 1000px) { .px-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; } }
.px-plan { display: grid; gap: .6em; padding: clamp(20px, 3vw, 28px); background: var(--card); border: 1px solid var(--line); min-width: 0; font-size: .9375rem; line-height: 1.85; }
.px-plan__name { font-size: .875rem; letter-spacing: .08em; color: var(--accent); line-height: 1.5; }
.px-plan__price { font-size: clamp(1.375rem, 5vw, 1.75rem); line-height: 1.35; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.px-plan__catch { font-size: 1rem; }
.px-k { margin-top: .6em !important; font-size: .8125rem; letter-spacing: .1em; }
.px-list { border-top: 1px solid var(--ink); }
.px-list li { position: relative; padding: 7px 0 7px 18px; border-bottom: 1px solid var(--line); line-height: 1.7; }
.px-list li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 9px; height: 1.5px; background: var(--accent); }
.px-voices { display: grid; gap: 2px; color: var(--ink); }
.px-table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--ink); font-size: .9375rem; }
.px-table thead th { padding: 8px 0; font-size: .75rem; font-weight: 700; letter-spacing: .1em; color: var(--ink-3); text-align: left; border-bottom: 1px solid var(--line); }
.px-table thead th:last-child, .px-table td { text-align: right; }
.px-table tbody th { padding: 9px 10px 9px 0; font-weight: 600; text-align: left; color: var(--ink); border-bottom: 1px solid var(--line); line-height: 1.6; word-break: auto-phrase; }
.px-table td { padding: 9px 0; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); font-weight: 700; border-bottom: 1px solid var(--line); vertical-align: top; }
.px-kinds { margin: 10px 0; display: grid; gap: 0 32px; border-top: 1px solid var(--ink); }
@media (min-width: 900px) { .px-kinds { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.px-kinds > div { padding: 16px 0; border-bottom: 1px solid var(--line); display: grid; gap: 4px; font-size: .9375rem; line-height: 1.85; }
.px-flow { margin-top: 8px; position: relative; display: grid; gap: 0; max-width: 46em; }
.px-flow::before { content: ""; position: absolute; left: 7px; top: 10px; bottom: 10px; width: 1.5px; background: var(--line-strong); }
.px-flow li { position: relative; padding: 0 0 22px 34px; display: grid; gap: 2px; line-height: 1.85; }
.px-flow li::before { content: ""; position: absolute; left: 0; top: 6px; width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid var(--ink); background: var(--paper); }
.px-flow__t { font-size: 1.0625rem; }
.px-qa { border-top: 1px solid var(--ink); }
.px-qa > div { padding: 16px 0; border-bottom: 1px solid var(--line); }
.px-qa dt { line-height: 1.7; }
.px-qa dd { margin: 6px 0 0; line-height: 1.9; }
.px-close .px-catch { margin-top: .4em; font-size: clamp(1.25rem, 4vw, 1.625rem); }
.px-sign { font-weight: 800; letter-spacing: .22em; color: var(--ink); }
.contact { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); max-width: 30em; }
.contact__label { font-size: .875rem; font-weight: 700; letter-spacing: .08em; color: var(--ink); }
.contact__list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.contact__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border: 1.5px solid var(--line-strong); border-radius: 2px; font-size: .95rem; font-weight: 700; letter-spacing: .06em; color: var(--ink-3); background: transparent; }
a.contact__btn { color: var(--ink); border-color: var(--ink); text-decoration: none; }
a.contact__btn:hover { background: var(--ink); color: var(--paper); }
.contact__note { margin-top: 10px; font-size: .875rem; color: var(--ink-2); }
.eyebrow__copy { min-width: 0; word-break: keep-all; overflow-wrap: anywhere; }
.px-more { border-top: 1px solid var(--line); }
.px-more > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; cursor: pointer; list-style: none; font-size: .9375rem; font-weight: 700; letter-spacing: .04em; color: var(--ink); }
.px-more > summary::-webkit-details-marker { display: none; }
.px-more > summary::after { content: ""; flex: none; width: 12px; height: 12px; background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat; transition: transform .3s var(--ease); }
.px-more[open] > summary::after { transform: rotate(45deg); }
.px-more > summary:hover { color: var(--accent); }
.px-more__body { display: grid; gap: .7em; padding: 4px 0 18px; }
.px-more--plan > summary { font-size: .875rem; }
.keep--more > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; cursor: pointer; list-style: none; }
.keep--more > summary::-webkit-details-marker { display: none; }
.keep--more > summary::after { content: ""; flex: none; width: 12px; height: 12px; background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat; transition: transform .3s var(--ease); }
.keep--more[open] > summary::after { transform: rotate(45deg); }
.mtx-switch { margin: clamp(24px, 4vw, 36px) 0 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.mtx-switch__legend { float: left; margin-right: 6px; padding: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; color: var(--ink-3); }
.mtx-switch__opt { position: relative; display: inline-flex; }
.mtx-switch__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.mtx-switch__opt span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--line-strong); border-radius: 999px; font-size: .875rem; font-weight: 700; color: var(--ink-2); background: var(--paper); }
.mtx-switch__opt input:checked + span { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.mtx-switch__opt input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 3px; }
.ix-industry:has(input[value="farm"]:checked) .mtx__row > span:nth-child(3),
.ix-industry:has(input[value="local"]:checked) .mtx__row > span:nth-child(2) { display: none; }
@media (min-width: 900px) {
  .ix-industry:has(input[value="farm"]:checked) .mtx__row,
  .ix-industry:has(input[value="local"]:checked) .mtx__row { grid-template-columns: minmax(0, .8fr) minmax(0, 2fr); }
}
.qnav { display: none; }
@media (max-width: 959.98px) {
  .qnav { display: block; position: fixed; inset: auto 0 0; z-index: 90; background: var(--paper); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
  .qnav ul { display: grid; grid-template-columns: repeat(4, 1fr); }
  .qnav a { display: flex; align-items: center; justify-content: center; min-height: 52px; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; color: var(--ink-2); text-decoration: none; }
  .qnav a[aria-current="true"] { color: var(--accent); box-shadow: inset 0 2px 0 var(--accent); }
  body { padding-bottom: calc(52px + env(safe-area-inset-bottom)); }
  body.menu-open .qnav { display: none; }
}
@media print {
  .qnav, .mtx-switch { display: none; }
  .px-more > summary::after, .keep--more > summary::after { display: none; }
}
/* v3.1 */
.ix-h2 { letter-spacing: .02em; }
.ix-k { position: relative; }
.ix-k::before { width: 40px; }
.js .ix-k::after { content: ""; position: absolute; left: 0; top: 50%; width: 40px; height: 12px; margin-top: -6px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 12'%3E%3Cpath d='M0 6 C5 0 8 12 13 6 S21 0 26 6 S34 12 40 6' fill='none' stroke='%23b5391f' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat; opacity: 0; transition: opacity .9s var(--ease); pointer-events: none; }
.js .ix-k::before { transition: opacity .9s var(--ease), transform .9s var(--ease); transform-origin: left; }
.js .is-tangled .ix-k::after { opacity: 1; }
.js .is-tangled .ix-k::before { opacity: 0; transform: scaleX(.4); }
.px-block--main { padding: clamp(22px, 4vw, 40px); background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--accent); }
.px-block--main .px-h3 { font-size: clamp(1.625rem, 5vw, 2.25rem); }
.px-block--sub .px-h3 { font-size: clamp(1.1875rem, 3.4vw, 1.5rem); }
.px-block--sub .px-catch { font-size: .9375rem; }
.px-block--sub .px-plans { gap: 10px; }
.px-block--sub .px-plan { padding: 16px 18px; gap: .3em; }
.px-block--sub .px-plan__price { font-size: 1.0625rem; }
.px-block--sub .px-plan__catch { font-size: .9375rem; }
.px-cond { padding: 10px 14px; border-left: 3px solid var(--accent); background: var(--paper-2); color: var(--ink); font-weight: 600; }
.flow { margin: clamp(28px, 4vw, 44px) 0 0; padding: clamp(18px, 3vw, 28px); background: var(--card); border: 1px solid var(--line); }
.flow__cap { font-size: .875rem; font-weight: 700; letter-spacing: .06em; color: var(--ink-2); }
.flow__switch { margin: 12px 0 4px; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.flow__opt { position: relative; display: inline-flex; }
.flow__opt input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.flow__opt span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--line-strong); border-radius: 999px; font-size: .875rem; font-weight: 700; color: var(--ink-2); background: var(--paper); }
.flow__opt input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.flow__opt input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 3px; }
.flow__lane { position: relative; margin-top: 18px; transition: opacity .4s var(--ease); }
.flow__k { font-size: .8125rem; font-weight: 800; letter-spacing: .12em; color: var(--ink-3); }
.flow__lane--after .flow__k { color: var(--accent); }
.flow__thread { position: absolute; left: 0; right: 0; bottom: 22px; width: 100%; height: 46px; z-index: 0; overflow: visible; }
.flow__thread path { fill: none; stroke: var(--line-strong); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.flow__lane--after .flow__thread path { stroke: var(--accent); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 0; }
.flow__steps { position: relative; z-index: 1; margin-top: 8px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; counter-reset: s; }
.flow__steps li { counter-increment: s; padding: 10px 10px; background: var(--paper); border: 1px solid var(--line); font-size: .875rem; font-weight: 600; line-height: 1.55; text-align: center; color: var(--ink); }
.flow__lane--before .flow__steps li { transform: rotate(var(--r, 0deg)); }
.flow__lane--before .flow__steps li:nth-child(1) { --r: -1.5deg; }
.flow__lane--before .flow__steps li:nth-child(2) { --r: 1.2deg; }
.flow__lane--before .flow__steps li:nth-child(3) { --r: -.8deg; }
.flow__lane--after .flow__steps li { border-color: var(--accent); }
.flow:has(input[value="before"]:checked) .flow__lane--after,
.flow:has(input[value="after"]:checked) .flow__lane--before { opacity: .45; }
.js .flow.is-tangled .flow__lane--after .flow__thread path { stroke-dashoffset: 1; }
.js .flow .flow__lane--after .flow__thread path { transition: stroke-dashoffset 1.2s var(--ease); }
.js .flow:has(input[value="after"]:checked) .flow__lane--after .flow__thread path { stroke-dashoffset: 0; }
@media (max-width: 520px) { .flow__steps li { font-size: .8125rem; padding: 8px 6px; } }
@media (max-height: 500px) and (orientation: landscape) { .qnav { display: none !important; } body { padding-bottom: 0 !important; } }
body.is-typing .qnav { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  .js .is-tangled .ix-k::after { opacity: 0; }
  .js .is-tangled .ix-k::before { opacity: 1; transform: none; }
  .js .flow.is-tangled .flow__lane--after .flow__thread path { stroke-dashoffset: 0; }
}
@media print { .flow__switch { display: none; } .flow__lane { opacity: 1 !important; } }
/* 拡大表示（表示幅 280px 未満。390px 端末の約140%以上の拡大に相当）での横はみ出し対策 */
@media (max-width: 279.98px) {
  .site-header__inner { gap: 6px; padding-inline: 12px; }
  .brand { gap: 6px; }
  .brand__mark { width: 22px; height: 22px; }
  .brand__name { font-size: .875rem; letter-spacing: .08em; }
  .js .menu-btn { padding: 0 2px; }
  .menu-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .hero__pair li { align-items: flex-start; }
  .hero__pair li > span, .hero__pair .q { white-space: normal; }
  .hero__title .line__in { overflow-wrap: anywhere; }
  .words { grid-template-columns: 1fr; }
  .words li:nth-child(odd) { padding-right: 0; }
  .words b { white-space: normal; }
  .svc__head { flex-wrap: wrap; }
  .svc__t, .svc__head > * { min-width: 0; overflow-wrap: anywhere; }
}
@media (max-width: 279.98px) {
  .px-plans { grid-template-columns: minmax(0, 1fr); }
  .px-table { width: 100%; table-layout: fixed; }
  .px-table th, .px-table td { overflow-wrap: anywhere; }
  .ix-method__title span { overflow-wrap: anywhere; }
}
@media (max-width: 279.98px) {
  main :where(div, section, header, form, fieldset, figure, article, ul, ol, li, dl, dd, p, h2, h3, h4) { min-width: 0; }
  main, .site-footer { overflow-wrap: anywhere; }
  main .q { white-space: normal; }
  .ix-about__grid, .faq__grid, .consult__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 999.98px) {
  .px-block--sub .px-plans { gap: 0; border-top: 1px solid var(--line); }
  .px-block--sub .px-plan { padding: 12px 0 4px; background: transparent; border: 0; border-bottom: 1px solid var(--line); grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 2px; align-items: baseline; }
  .px-block--sub .px-plan > .px-plan__name { grid-column: 1; }
  .px-block--sub .px-plan > .px-plan__price { grid-column: 1 / -1; font-size: .9375rem; }
  .px-block--sub .px-plan > .px-plan__catch, .px-block--sub .px-plan > details { grid-column: 1 / -1; }
  .px-block--sub .px-plan .px-more { border-top: 0; }
  .px-block--sub .px-plan .px-more > summary { min-height: 44px; }
}
.flow__steps li { word-break: keep-all; overflow-wrap: anywhere; }
/* v3.2 */
.px-lead p:nth-child(3) { color: var(--ink); }
.px-costbox { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--line-strong); display: grid; gap: .6em; }
.px-costh { font-size: 1rem; }
.px-common { margin-top: clamp(28px, 4vw, 40px); max-width: 60em; padding: 14px 0 0; border-top: 1px solid var(--line); color: var(--ink); font-weight: 600; }
.flow__tabs { margin: 14px 0 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 0 18px; border-bottom: 1px solid var(--line); }
.flow__tab { position: relative; display: inline-flex; }
.flow__tab input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.flow__tab span { display: inline-flex; align-items: center; min-height: 44px; font-size: .9375rem; font-weight: 700; color: var(--ink-3); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .2s var(--ease), border-color .2s var(--ease); }
.flow__tab input:checked + span { color: var(--ink); border-color: var(--accent); }
.flow__tab input:hover + span { color: var(--ink); }
.flow__tab input:focus-visible + span { outline: 3px solid var(--accent); outline-offset: 2px; }
.flow__switch { margin-top: 14px; }
.flow__panel { margin-top: 4px; }
.flow:has(input[name="flow-topic"]:checked) .flow__panel { display: none; }
.flow:has(input[value="rec"]:checked) .flow__panel--rec,
.flow:has(input[value="stock"]:checked) .flow__panel--stock,
.flow:has(input[value="manual"]:checked) .flow__panel--manual { display: block; animation: flowIn .45s var(--ease); }
@keyframes flowIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.flow:has(input[value="before"]:checked) .flow__lane--after,
.flow:has(input[value="after"]:checked) .flow__lane--before { opacity: .45; }
.flow:not(.is-tangled) .flow__panel .flow__lane--after .flow__thread path { animation: flowLine 1.1s var(--ease) both; }
@keyframes flowLine { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .flow__panel, .flow__panel .flow__lane--after .flow__thread path { animation: none !important; } }
@media print { .flow__tabs { display: none; } .flow .flow__panel { display: block !important; } }
/* 問い合わせフォーム（v4 試作） */
.cform { grid-column: 1 / -1; background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--accent); padding: clamp(24px, 3.5vw, 44px); display: grid; gap: 22px; }
.cform__title { font-size: clamp(1.375rem, 3.6vw, 1.75rem); }
.cform__lead { color: var(--ink-2); font-size: .9375rem; max-width: 40em; }
.cform__notice { padding: 12px 14px; border-left: 3px solid var(--accent); background: var(--paper-2); font-size: .9375rem; }
.cform__grid { display: grid; gap: 22px; }
@media (min-width: 760px) { .cform__grid { grid-template-columns: 1fr 1fr; } }
.cform__field { display: grid; gap: 8px; min-width: 0; border: 0; padding: 0; margin: 0; }
.cform__field > label, .cform__field > legend { font-size: .875rem; font-weight: 700; padding: 0; }
.cform__req { margin-left: 8px; font-size: .75rem; font-weight: 700; color: var(--accent); letter-spacing: .06em; }
.cform input[type="text"], .cform input[type="email"], .cform textarea { width: 100%; min-height: 48px; padding: 12px 14px; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper); border: 1.5px solid var(--line-strong); border-radius: 2px; }
.cform textarea { min-height: 9em; line-height: 1.8; resize: vertical; }
.cform input:focus-visible, .cform textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 1px; border-color: var(--ink); }
.cform [aria-invalid="true"] { border-color: var(--accent); background: #fff8f6; }
.cform__types .chips { gap: 8px; }
.chip--radio span::before { content: ""; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid currentColor; }
.chip--radio input:checked + span::before { content: ""; background: var(--paper); border-color: var(--paper); }
.cform__under { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.cform__count { margin-left: auto; font-size: .8125rem; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.cform__count.is-over { color: var(--accent); font-weight: 700; }
.cform__link { min-height: 44px; padding: 0; background: none; border: 0; font-size: .875rem; font-weight: 700; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.cform__err { font-size: .875rem; font-weight: 700; color: var(--accent); }
.cform__err::before { content: "！ "; }
.cform__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cform__check { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; font-size: .9375rem; font-weight: 600; cursor: pointer; }
.cform__check input { width: 20px; height: 20px; margin-top: 4px; accent-color: var(--ink); flex: none; }
.cform__privacy summary { min-height: 44px; display: inline-flex; align-items: center; font-size: .875rem; color: var(--ink-2); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.cform__privacy p { font-size: .875rem; color: var(--ink-2); padding: 4px 0 8px; }
.cform__ts:empty { display: none; }
.cform__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.cform__actions .btn[aria-busy="true"] { opacity: .7; cursor: progress; }
.cform__status { font-size: .9375rem; font-weight: 600; }
.cform__summary { padding: 14px 16px; border-left: 3px solid var(--accent); background: #fff8f6; font-size: .9375rem; }
.cform__summary:focus { outline: 3px solid var(--accent); outline-offset: 2px; }
.cform.is-sent .cform__grid, .cform.is-sent .cform__types, .cform.is-sent .cform__field, .cform.is-sent .cform__ts, .cform.is-sent .cform__actions .btn { display: none; }
.cform__done { padding: 18px 20px; border-left: 3px solid var(--ink); background: var(--paper-2); }
.cform__done strong { display: block; font-size: 1.125rem; margin-bottom: 4px; }
@media (prefers-reduced-motion: reduce) { .cform * { transition: none !important; } }
/* v4.1：相談メモとフォームの使い分け表示 */
.memo__tag { display: inline-block; margin-left: 10px; padding: 2px 10px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: .75rem; font-weight: 700; color: var(--ink-2); vertical-align: middle; letter-spacing: .06em; }
.cform__hint { font-size: .875rem; color: var(--ink-2); padding-left: 12px; border-left: 2px solid var(--line-strong); }
/* v4.2：相談セクションの整理（フォームを主役、メモは補助） */
@media (min-width: 1000px) { .consult__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); } }
.consult__grid > .cform { grid-column: auto; }
.consult__grid > .memo-wrap { grid-column: 1 / -1; }
.memo-wrap { border: 1px solid var(--line); background: var(--card); }
.memo-wrap__sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; min-height: 56px; padding: 14px 52px 14px 20px; cursor: pointer; list-style: none; position: relative; }
.memo-wrap__sum::-webkit-details-marker { display: none; }
.memo-wrap__sum::after { content: ""; position: absolute; right: 20px; top: 50%; width: 12px; height: 12px; margin-top: -6px; background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat; transition: transform .3s var(--ease); }
.memo-wrap[open] > .memo-wrap__sum::after { transform: rotate(45deg); }
.memo-wrap__t { font-weight: 700; }
.memo-wrap__s { font-size: .875rem; color: var(--ink-2); }
.memo-wrap > .memo { border: 0; border-top: 1px solid var(--line); }
.cform[data-state="preparing"] #cf-submit { background: var(--ink-3); cursor: not-allowed; }
.svc__proof { margin-top: 10px; padding: 12px 14px; border-left: 2px solid var(--accent); background: var(--paper); }
.svc__proof-t { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; color: var(--ink); }
.svc__proof ul { margin-top: 6px; display: grid; gap: 2px; font-size: .875rem; color: var(--ink-2); line-height: 1.7; }
.svc__proof li::before { content: "— "; color: var(--accent); }
.ix-about__lead { font-weight: 700; color: var(--ink); }
@media print { .memo-wrap > .memo { display: block; } }

/* =========================================================
   v4.3 デザイン基盤（案1：静かな精緻化）
   目的：文字・罫線・余白の規則を一か所にまとめ、ページ全体で揃える
   ========================================================= */
:root {
  --fs-h2: clamp(1.75rem, 4.6vw, 2.75rem);      /* セクション見出し */
  --fs-h3: clamp(1.1875rem, 2.6vw, 1.5rem);     /* 小見出し */
  --fs-body: 1rem;                              /* 本文 */
  --fs-note: .875rem;                           /* 補足 */
  --lh-body: 1.9; --lh-note: 1.75;
  --rule-hair: 1px solid var(--line);           /* 区切り（情報の境目） */
  --rule-strong: 1.5px solid var(--ink);        /* 表・一覧の始まり */
  --rule-accent: 2px solid var(--accent);       /* 節目・強調だけに使う */
  --space-section: clamp(88px, 11vw, 148px);    /* セクションの上下 */
  --space-block: clamp(40px, 6vw, 72px);        /* セクション内のまとまり */
  --thread: 1.5px;                              /* 線の太さ（進め方・業種別） */
}
.ix-sec { padding-block: var(--space-section); border-top: var(--rule-hair); }
.ix-h2 { font-size: var(--fs-h2); line-height: 1.38; letter-spacing: .02em; }
.ix-lead { line-height: var(--lh-body); }
.ix-small, .px-block p.ix-small { font-size: var(--fs-note); line-height: var(--lh-note); }
.px-block { margin-top: var(--space-block); }

/* ---------- 進め方：一本の線と節目（案2の演出はここだけ） ---------- */
.route6::before, .route6::after { display: none !important; }     /* 旧：全体の縦線 */
.route6 { margin-top: var(--space-block); max-width: 50em; }
.route6 li { padding: 0 0 clamp(26px, 4vw, 36px) clamp(64px, 9vw, 92px); }
.route6 li::before { left: calc(clamp(22px, 3vw, 30px) - 8px); top: 10px; width: 16px; height: 16px; border-width: var(--thread); transition: background-color .5s var(--ease), border-color .5s var(--ease); }
.route6 li::after { content: ""; position: absolute; left: calc(clamp(22px, 3vw, 30px) - .75px); top: 30px; bottom: 0; width: var(--thread); background: var(--ink); transition: opacity .7s var(--ease); }
.route6 li:last-child::after { display: none; }
.route6__no { position: absolute; left: 0; top: 34px; width: clamp(44px, 6vw, 60px); text-align: center; font-family: var(--mono); font-size: clamp(.9375rem, 1.6vw, 1.125rem); font-weight: 700; color: var(--accent); background: var(--paper); line-height: 1.2; z-index: 1; }
.route6 h3 { font-size: var(--fs-h3); }
.route6 p { font-size: var(--fs-note); line-height: var(--lh-note); max-width: 34em; }
/* 節目：合意 */
.route6 li.route6__agree { margin: 6px 0 clamp(26px, 4vw, 36px); padding: 18px 20px 20px clamp(64px, 9vw, 92px) !important; border: 0; border-block: var(--rule-accent); background: var(--accent-soft); }
.route6 li.route6__agree::before { display: block; left: calc(clamp(22px, 3vw, 30px) - 11px); top: 22px; width: 22px; height: 22px; border: 2px solid var(--accent); background: var(--accent); }
.route6 li.route6__agree::after { top: 44px; bottom: -36px; background: var(--accent); }
.route6 li.route6__agree .route6__no { top: 52px; background: var(--accent-soft); }
.route6__stamp { left: auto; right: 16px; top: 16px; }
/* 演出：線がほどけて整う（JS が .is-thread を付けたときだけ。静止時・動きを減らす設定・JS 無効は整った線） */
.route6.is-thread li:not(.is-done)::after { opacity: 0; }
.route6.is-thread li:not(.is-done)::before { border-color: var(--line-strong); }
.route6.is-thread li:not(:last-child)::marker { content: none; }
.route6 .route6__wave { position: absolute; left: calc(clamp(22px, 3vw, 30px) - 7px); top: 30px; bottom: 0; width: 14px; pointer-events: none; opacity: 0; transition: opacity .7s var(--ease);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 40' preserveAspectRatio='none'%3E%3Cpath d='M7 0 C14 6 0 14 7 20 S14 34 7 40' fill='none' stroke='%23b9b2a4' stroke-width='1.5'/%3E%3C/svg%3E") repeat-y 0 0 / 14px 40px; }
.route6.is-thread li:not(.is-done) .route6__wave { opacity: 1; }
.route6 li:last-child .route6__wave { display: none; }
@media (prefers-reduced-motion: reduce) { .route6 li::after, .route6 li::before, .route6 .route6__wave { transition: none; } }

/* ---------- 業種別の例：入口と例を線でつなぐ ---------- */
@media (min-width: 900px) {
  .mtx__row:not(.mtx__row--head) { position: relative; }
  .mtx__row:not(.mtx__row--head) > span[role="cell"] { position: relative; padding-left: 18px; border-left: var(--rule-hair); }
  .mtx__row:not(.mtx__row--head) > span[role="cell"]::before { content: ""; position: absolute; left: -32px; top: 50%; width: 32px; border-top: var(--rule-hair); }
  .ix-industry:has(input[value="farm"]:checked) .mtx__row > span:nth-child(2),
  .ix-industry:has(input[value="local"]:checked) .mtx__row > span:nth-child(3) { border-left: var(--rule-accent); }
  .ix-industry:has(input[value="farm"]:checked) .mtx__row > span:nth-child(2)::before,
  .ix-industry:has(input[value="local"]:checked) .mtx__row > span:nth-child(3)::before { border-top: var(--rule-accent); }
}
@media (max-width: 899.98px) {
  .mtx__row:not(.mtx__row--head) > span[role="cell"] { padding-left: 12px; border-left: var(--rule-hair); }
  .ix-industry:has(input[value="farm"]:checked) .mtx__row > span:nth-child(2),
  .ix-industry:has(input[value="local"]:checked) .mtx__row > span:nth-child(3) { border-left: var(--rule-accent); }
}

/* ---------- 費用の後半：カードから、罫線と余白の一覧へ ---------- */
@media (min-width: 1000px) {
  .px-block--sub .px-plans { gap: 0 clamp(24px, 3vw, 40px); border-top: var(--rule-strong); }
  .px-block--sub .px-plan { padding: 18px 0 8px; background: transparent; border: 0; border-bottom: var(--rule-hair); }
}
.px-block--sub .px-plan__name { letter-spacing: .1em; }
.px-costbox { border-top: var(--rule-hair); padding-top: 18px; }
.px-costh { font-size: var(--fs-h3); }
.px-cond { border-left: var(--rule-accent); }
.px-common { border-top: var(--rule-strong); padding-top: 16px; }
.px-close { margin-top: var(--space-section); padding-top: clamp(32px, 5vw, 56px); border-top: 0; position: relative; }
.px-close::before { content: ""; position: absolute; left: 0; top: 0; width: min(240px, 50%); border-top: var(--rule-accent); }
.px-close::after { content: ""; position: absolute; left: min(240px, 50%); top: -5px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); }
.px-close .px-h3 { font-size: var(--fs-h2); line-height: 1.38; }
.route6 li.route6__agree > h3, .route6 li.route6__agree > p { padding-right: 52px; }
.route6 li.route6__agree .route6__no { color: var(--ink); }  /* 濃い背景色の上でのコントラスト確保 */

/* =========================================================
   v4.4 本人レビュー反映
   ========================================================= */
/* ---------- 図解：いま｜→｜これから（案A：左右比較・既定） ---------- */
.flow--ba .flow__panel { margin-top: 18px; }
.ba { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: clamp(8px, 2vw, 24px); align-items: stretch; }
.ba__k { font-size: .875rem; font-weight: 800; letter-spacing: .12em; color: var(--ink-3); margin-bottom: 10px; }
.ba__lane--after .ba__k { color: var(--accent); }
.ba__body { position: relative; }
.ba__thread { position: absolute; left: 8px; top: 0; bottom: 0; width: 20px; height: 100%; overflow: visible; }
.ba__thread path { fill: none; stroke: var(--line-strong); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ba__lane--after .ba__thread path { stroke: var(--accent); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 0; }
.ba__steps { position: relative; display: grid; gap: clamp(10px, 2vw, 16px); padding-left: 0; counter-reset: s; }
.ba__steps li { position: relative; z-index: 1; padding: 10px 12px; background: var(--paper); border: 1px solid var(--line); font-size: clamp(.8125rem, 1.6vw, .9375rem); font-weight: 600; line-height: 1.55; color: var(--ink); word-break: keep-all; overflow-wrap: anywhere; }
.ba__lane--before .ba__steps li { color: var(--ink-2); border-style: dashed; }
.ba__lane--before .ba__steps li:nth-child(1) { transform: translateX(6px) rotate(-1.2deg); }
.ba__lane--before .ba__steps li:nth-child(2) { transform: translateX(-4px) rotate(1deg); }
.ba__lane--before .ba__steps li:nth-child(3) { transform: translateX(8px) rotate(-.6deg); }
.ba__lane--after .ba__steps li { border-color: var(--accent); }
.ba__arrow { display: grid; place-items: center; width: clamp(28px, 5vw, 56px); }
.ba__arrow svg { width: 100%; height: auto; }
.ba__arrow path { fill: none; stroke: var(--ink); stroke-width: 2; }
.js .flow:not(.is-tangled) .flow__panel .ba__lane--after .ba__thread path { animation: flowLine 1.1s var(--ease) both; }
@media (prefers-reduced-motion: reduce) { .ba__lane--after .ba__thread path { animation: none !important; } }
@media print { .flow .flow__panel { display: block !important; } }

/* ---------- 進め方 04：丸い印を削除した版（印は index.html から削除済み） ---------- */
.route6 li.route6__agree > h3, .route6 li.route6__agree > p { padding-right: 0; }

/* ---------- 代表紹介・よくある質問：PC だけ左側を追従（CSS のみ） ---------- */
@media (min-width: 1000px) and (min-height: 700px) {
  .ix-about__grid { align-items: start; }
  .ix-about__grid > div:first-child { position: sticky; top: calc(var(--header-h) + 32px); align-self: start; }
  .faq__grid { align-items: start; }
  .faq__grid > .sec-head--side { position: sticky; top: calc(var(--header-h) + 32px); align-self: start; }
}
#about :focus-visible, #faq :focus-visible { scroll-margin-top: calc(var(--header-h) + 24px); }

/* ===== v4.5：図解「いま→これから」再設計（読みやすい2枚のカード＋題材の選択） ===== */
/* 旧来の .flow（v14 の工程一覧用、style.css で PC 4列グリッド）が図にも効いて箱が細くなっていたため、この図では解除 */
.flow.cv { display: block; gap: 0; padding: clamp(20px, 3vw, 36px); }
.cv__cap { display: grid; gap: 4px; }
.cv__cap-t { font-size: clamp(1.0625rem, 1.6vw, 1.25rem); font-weight: 800; line-height: 1.6; color: var(--ink); }
.cv__cap-s { font-size: .8125rem; line-height: 1.7; color: var(--ink-2); word-break: auto-phrase; }
.cv__pick { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.cv__pick-t { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 700; color: var(--ink-2); }
.cv__pick-t::after { content: ""; width: 7px; height: 7px; border-top: 2px solid var(--accent); border-right: 2px solid var(--accent); transform: rotate(45deg); }
.cv__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.cv__tab { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px 0 14px; border: 1.5px solid var(--line-strong); border-radius: 999px; background: var(--paper); font: inherit; font-size: .9375rem; font-weight: 700; line-height: 1.3; color: var(--ink-2); cursor: pointer; transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.cv__tab::before { content: ""; flex: none; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid currentColor; background: transparent; box-sizing: border-box; }
.cv__tab:hover { border-color: var(--ink); color: var(--ink); }
.cv__tab[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.cv__tab[aria-selected="true"]::before { background: var(--accent); border-color: var(--paper); }
.cv__tab:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
html:not(.js) .cv__pick { display: none; }
.cv__panel { margin-top: 22px; }
.cv__title { font-size: 1rem; font-weight: 800; color: var(--ink); margin-bottom: 12px; }
html:not(.js) .cv__panel + .cv__panel { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.js .cv.is-tabs .cv__title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.cv__pair { display: grid; grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); align-items: stretch; }
.cv__card { min-width: 0; display: grid; align-content: start; gap: 12px; padding: clamp(18px, 2.4vw, 28px); background: var(--paper); border: 1px solid var(--line); }
.cv__card--before { border: 1.5px dashed var(--line-strong); }
.cv__card--after { border: 1.5px solid var(--accent); }
.cv__k { font-size: .8125rem; font-weight: 800; letter-spacing: .14em; color: var(--ink-2); }
.cv__card--after .cv__k { color: var(--accent); }
.cv__sum { max-width: 26em; font-size: clamp(1rem, 1.35vw, 1.0625rem); font-weight: 700; line-height: 1.75; color: var(--ink); word-break: auto-phrase; }
.cv__card--before .cv__sum { color: var(--ink-2); }
.cv__flow { position: relative; }
.cv__line { position: absolute; left: 0; top: 18px; width: 24px; height: calc(100% - 36px); overflow: visible; }
.cv__line path { fill: none; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.cv__card--before .cv__line path { stroke: var(--line-strong); stroke-dasharray: 4 4; }
.cv__card--before .cv__line .cv__line2 { opacity: .6; }
.cv__card--after .cv__line path { stroke: var(--accent); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: 0; }
.cv__steps { list-style: none; margin: 0; padding: 0 0 0 36px; display: grid; gap: 8px; }
.cv__steps li { position: relative; padding: 8px 12px; font-size: .9375rem; font-weight: 600; line-height: 1.6; color: var(--ink); background: var(--card); border: 1px solid var(--line); word-break: auto-phrase; }
.cv__card--before .cv__steps li { border-style: dashed; color: var(--ink-2); transform: translateX(var(--x, 0)) rotate(var(--r, 0deg)); }
.cv__card--before .cv__steps li:nth-child(1) { --r: -1deg; --x: 6px; }
.cv__card--before .cv__steps li:nth-child(2) { --r: .8deg; --x: -2px; }
.cv__card--before .cv__steps li:nth-child(3) { --r: -.6deg; --x: 10px; }
.cv__card--after .cv__steps li { border-color: var(--accent); }
.cv__dot { position: absolute; left: -30px; top: calc(50% - 6px); width: 12px; height: 12px; border-radius: 50%; background: var(--paper); border: 2px solid var(--line-strong); box-sizing: border-box; }
.cv__card--before .cv__steps li .cv__dot { transform: rotate(calc(var(--r, 0deg) * -1)) translateX(calc(var(--x, 0px) * -1)); }
.cv__card--after .cv__dot { background: var(--accent); border-color: var(--accent); }
.cv__arrow { display: grid; place-items: center; }
.cv__arrow svg { width: 44px; height: 24px; overflow: visible; }
.cv__arrow path { fill: none; stroke: var(--accent); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 759px) {
  .cv__pair { grid-template-columns: minmax(0, 1fr); }
  .cv__pick { margin-top: 16px; gap: 8px 12px; }
  .cv__panel { margin-top: 16px; }
  .cv__card { gap: 8px; padding: 16px; }
  .cv__arrow { height: 36px; }
  .cv__arrow svg { transform: rotate(90deg); width: 28px; }
  .cv__tab { padding: 0 14px 0 12px; font-size: .875rem; }
  .cv__steps { gap: 6px; padding-left: 32px; }
  .cv__dot { left: -26px; }
  .cv__steps li { padding: 6px 10px; font-size: .875rem; }
  /* v4.6（本人決定）：スマホでは要約文を表示しない。同じ文が直後の「相談できること」の いま／これから にあるため、読み上げからも外す（情報は失われない） */
  .cv__sum { display: none; }
}
/* 案C：題材を切り替えたときだけ、「いま」から「これから」へ順に整う（合計 約0.57秒・transform／opacity と線の描画のみ） */
@keyframes cvFade { from { opacity: .35; } to { opacity: 1; } }
@keyframes cvArrow { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: none; } }
@keyframes cvDraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes cvStep { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }
.cv--fx .cv__panel.is-enter .cv__card--before { animation: cvFade .28s var(--ease) both; }
.cv--fx .cv__panel.is-enter .cv__arrow path { animation: cvArrow .26s var(--ease) .1s both; }
.cv--fx .cv__panel.is-enter .cv__card--after .cv__line path { animation: cvDraw .4s var(--ease) .16s both; }
.cv--fx .cv__panel.is-enter .cv__card--after .cv__steps li { animation: cvStep .28s var(--ease) both; }
.cv--fx .cv__panel.is-enter .cv__card--after .cv__steps li:nth-child(1) { animation-delay: .15s; }
.cv--fx .cv__panel.is-enter .cv__card--after .cv__steps li:nth-child(2) { animation-delay: .22s; }
.cv--fx .cv__panel.is-enter .cv__card--after .cv__steps li:nth-child(3) { animation-delay: .29s; }
@media (prefers-reduced-motion: reduce) { .cv *, .cv { animation: none !important; transition: none !important; } }
@media print { .cv__pick { display: none; } .cv .cv__panel { display: block !important; } .js .cv.is-tabs .cv__title { position: static; width: auto; height: auto; margin: 0 0 12px; clip: auto; overflow: visible; } }

/* v4.9（初期公開はメールで相談）：コピー用ボタンとアドレスの表示。既存の a.contact__btn と同じ見た目 */
button.contact__btn { color: var(--ink); border-color: var(--ink); cursor: pointer; font-family: inherit; }
button.contact__btn:hover { background: var(--ink); color: var(--paper); }
.contact__btn:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.contact__addr { margin-top: 10px; font-size: 1.0625rem; font-weight: 700; letter-spacing: .02em; color: var(--ink); overflow-wrap: anywhere; user-select: all; }
.contact__msg { margin-top: 6px; min-height: 1.5em; font-size: .875rem; color: var(--ink-2); }
