/* A-5: Keep the existing visual treatment when promoting business text to h1. */
.hero .zeno-business-heading { font-weight: 400; margin-bottom: 0; }
.footer__bottom { flex-wrap: wrap; gap: 1.2rem; }
.footer__bottom small { overflow-wrap: anywhere; }
.zeno-support-text { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem; margin-top: 4rem; color: #203449; text-align: left; }
.zeno-support-text section { padding: 2.4rem; background: #f5f8fc; border-radius: 1.2rem; }
.zeno-support-text h3 { margin: 0 0 1.6rem; font-size: 1.8rem; line-height: 1.6; }
.zeno-support-text p, .zeno-support-text li { font-size: 1.5rem; line-height: 1.9; overflow-wrap: anywhere; }
.zeno-support-text ul { margin: 1.2rem 0 0; padding-left: 1.4em; list-style: disc; }
.zeno-document { max-width: 100rem; margin: 0 auto; padding: 14rem 3.2rem 10rem; color: #203449; }
.zeno-breadcrumbs { margin-bottom: 3.2rem; font-size: 1.4rem; line-height: 1.8; overflow-wrap: anywhere; }
.zeno-breadcrumbs a, .zeno-document__content a { color: #1b5da9; text-decoration: underline; text-underline-offset: .2em; }
.zeno-document__title { margin: 0 0 4rem; font-size: clamp(2.8rem, 4vw, 4.4rem); line-height: 1.5; overflow-wrap: anywhere; }
.zeno-document__content { font-size: 1.6rem; line-height: 2; overflow-wrap: anywhere; }
.zeno-document__content > * + * { margin-top: 1.5em; }
.zeno-document__content h2 { font-size: 2.6rem; line-height: 1.6; margin-top: 2em; }
.zeno-document__content h3 { font-size: 2rem; line-height: 1.7; margin-top: 1.7em; }
.zeno-document__content ul, .zeno-document__content ol { padding-left: 1.5em; }
.zeno-document__content ul { list-style: disc; }
.zeno-document__content ol { list-style: decimal; }
.zeno-document__content img { max-width: 100%; height: auto; }
.zeno-document__content figure { max-width: 100%; }
.zeno-document__content .wp-block-table { overflow-x: auto; }
.zeno-document__content table { width: 100%; border-collapse: collapse; }
.zeno-document__content td, .zeno-document__content th { border: 1px solid #d9e2ec; padding: 1rem; text-align: left; }
@media (max-width: 870px) {
    .footer__bottom { margin-top: 2.4rem; align-items: flex-start; }
    .zeno-support-text { grid-template-columns: 1fr; gap: 1.6rem; }
    .zeno-document { padding: 10rem 2rem 6rem; }
    .zeno-document__title { margin-bottom: 3rem; }
}

/* B-2: 下層ページ（サービス・事例・プロフィール）用コンポーネント（2026-10-17 追加） */
.zeno-document__content .zn-lead { padding: 2rem 2.4rem; border-left: 4px solid #a57841; background: #f2f6ff; color: #001125; font-size: 1.8rem; line-height: 1.9; }
.zeno-document__content .zn-sec { padding-bottom: 1.2rem; border-bottom: 1px solid #d9e2ec; }
.zeno-document__content .zn-note { font-size: 1.4rem; line-height: 1.8; color: #5b6b7c; }
.zeno-document__content ul.zn-check, .zeno-document__content ul.zn-pain { list-style: none; padding-left: 0; }
.zeno-document__content ul.zn-check > li, .zeno-document__content ul.zn-pain > li { position: relative; padding: 1.2rem 1.6rem 1.2rem 4.6rem; background: #f2f6ff; border-radius: .8rem; line-height: 1.8; }
.zeno-document__content ul.zn-check > li + li, .zeno-document__content ul.zn-pain > li + li { margin-top: .8rem; }
.zeno-document__content ul.zn-check > li::before { content: ""; position: absolute; left: 1.9rem; top: 1.9rem; width: 1.3rem; height: .7rem; border-left: 2px solid #1b5da9; border-bottom: 2px solid #1b5da9; transform: rotate(-45deg); }
.zeno-document__content ul.zn-pain > li { background: #faf6f0; }
.zeno-document__content ul.zn-pain > li::before { content: "!"; position: absolute; left: 1.4rem; top: 1.35rem; width: 2rem; height: 2rem; border-radius: 50%; background: #a57841; color: #fff; font-size: 1.3rem; font-weight: 700; line-height: 2rem; text-align: center; }
.zeno-document__content ul.zn-support { list-style: none; padding-left: 0; }
.zeno-document__content ul.zn-support > li { padding: 1.4rem 0 1.4rem 2rem; border-left: 3px solid #051c45; line-height: 1.8; }
.zeno-document__content ul.zn-support > li + li { margin-top: 1rem; }
.zeno-document__content ul.zn-support strong { display: block; color: #001125; font-size: 1.7rem; }
.zeno-document__content .zn-box { padding: 2.4rem; border: 1px solid #d9e2ec; border-radius: 1.2rem; background: #fff; }
.zeno-document__content .zn-box__title { margin: 0 0 1.6rem; color: #001125; font-size: 1.6rem; font-weight: 700; line-height: 1.6; }
.zeno-document__content .zn-box__cap { margin: 1.6rem 0 0; color: #5b6b7c; font-size: 1.35rem; line-height: 1.7; }
.zeno-document__content .zn-callout { padding: 2rem 2.4rem; border-radius: 1rem; background: #051c45; color: #fff; line-height: 1.9; }
.zeno-document__content .zn-callout strong { color: #e6c89c; }
.zeno-document__content .zn-meta td:first-child { width: 8em; white-space: nowrap; background: #f2f6ff; color: #001125; font-weight: 700; }
/* 横フロー（3〜4段） */
.zeno-document__content .zn-flow { display: grid; grid-template-columns: repeat(var(--zn-cols, 4), minmax(0, 1fr)); gap: 2.4rem; margin: 0; padding: 0; list-style: none; }
.zeno-document__content .zn-flow > li { position: relative; padding: 2rem 1.8rem; border-top: 4px solid #051c45; border-radius: 1rem; background: #f2f6ff; }
.zeno-document__content .zn-flow > li:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: -1.6rem; width: 1rem; height: 1rem; border-top: 2px solid #a57841; border-right: 2px solid #a57841; transform: translateY(-50%) rotate(45deg); }
.zeno-document__content .zn-flow__no { display: block; color: #a57841; font-family: Cardo, serif; font-size: 1.3rem; letter-spacing: .1em; }
.zeno-document__content .zn-flow__title { display: block; margin: .4rem 0 .8rem; color: #001125; font-size: 1.7rem; font-weight: 700; line-height: 1.5; }
.zeno-document__content .zn-flow__meta { display: inline-block; margin-bottom: 1rem; padding: .1rem 1rem; border-radius: 99px; background: #051c45; color: #fff; font-size: 1.2rem; line-height: 1.8; }
.zeno-document__content .zn-flow__label { display: block; margin-top: 1rem; color: #5b6b7c; font-size: 1.25rem; font-weight: 700; }
.zeno-document__content .zn-flow ul { margin: .4rem 0 0; padding-left: 1.2em; list-style: disc; }
.zeno-document__content .zn-flow li li, .zeno-document__content .zn-flow p { font-size: 1.4rem; line-height: 1.75; }
.zeno-document__content .zn-flow p { margin: 0; }
/* 縦ステップ（5段以上） */
.zeno-document__content .zn-steps { margin: 0; padding: 0; list-style: none; counter-reset: znstep; }
.zeno-document__content .zn-steps > li { position: relative; padding: 0 0 2.4rem 6rem; counter-increment: znstep; }
.zeno-document__content .zn-steps > li::before { content: counter(znstep); position: absolute; left: 0; top: 0; width: 4rem; height: 4rem; border-radius: 50%; background: #051c45; color: #fff; font-family: Cardo, serif; font-size: 1.8rem; line-height: 4rem; text-align: center; }
.zeno-document__content .zn-steps > li:not(:last-child)::after { content: ""; position: absolute; left: 2rem; top: 4.6rem; bottom: .6rem; width: 1px; background: #b1b8c2; }
.zeno-document__content .zn-steps__title { display: block; padding-top: .7rem; color: #001125; font-size: 1.7rem; font-weight: 700; line-height: 1.5; }
.zeno-document__content .zn-steps p { margin: .4rem 0 0; font-size: 1.45rem; line-height: 1.8; }
.zeno-document__content .zn-steps__out { display: block; margin-top: .4rem; color: #5b6b7c; font-size: 1.3rem; }
/* カード */
.zeno-document__content .zn-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr)); gap: 1.6rem; margin: 0; padding: 0; list-style: none; }
.zeno-document__content .zn-card { display: block; padding: 2rem 2.2rem; border: 1px solid #d9e2ec; border-radius: 1rem; background: #fff; color: inherit; }
.zeno-document__content a.zn-card { text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.zeno-document__content a.zn-card:hover { border-color: #1b5da9; box-shadow: 0 6px 20px rgba(5, 28, 69, .08); }
.zeno-document__content .zn-card__no { display: block; color: #a57841; font-family: Cardo, serif; font-size: 1.4rem; letter-spacing: .08em; }
.zeno-document__content .zn-card__title { display: block; margin: .4rem 0 .8rem; color: #001125; font-size: 1.7rem; font-weight: 700; line-height: 1.5; }
.zeno-document__content .zn-card p { margin: 0; font-size: 1.45rem; line-height: 1.8; }
.zeno-document__content .zn-card__more { display: inline-block; margin-top: 1.2rem; color: #1b5da9; font-size: 1.4rem; }
.zeno-document__content .zn-card__tags { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }
/* タグ */
.zeno-document__content .zn-tags { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.zeno-document__content .zn-tags > li, .zeno-document__content .zn-tag { padding: .4rem 1.2rem; border: 1px solid #b1b8c2; border-radius: 99px; color: #203449; font-size: 1.35rem; line-height: 1.7; }
/* 数値 */
.zeno-document__content .zn-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 1.6rem; }
.zeno-document__content .zn-stat { padding: 2rem 2.2rem; border-radius: 1rem; background: #051c45; color: #fff; }
.zeno-document__content .zn-stat__num { display: block; font-family: "Noto Serif JP", serif; font-size: 3rem; line-height: 1.35; }
.zeno-document__content .zn-stat__label { display: block; margin-top: .6rem; color: #d6e0f0; font-size: 1.4rem; line-height: 1.6; }
.zeno-document__content .zn-stat__src { margin-top: .8rem; color: #5b6b7c; font-size: 1.3rem; }
/* 役割分担 */
.zeno-document__content .zn-roles-wrap { overflow-x: auto; }
.zeno-document__content .zn-roles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; min-width: 64rem; }
.zeno-document__content .zn-roles__ph { padding: 1rem .6rem; background: #051c45; color: #fff; font-size: 1.35rem; font-weight: 700; text-align: center; clip-path: polygon(0 0, calc(100% - 1rem) 0, 100% 50%, calc(100% - 1rem) 100%, 0 100%); }
.zeno-document__content .zn-roles__bar { padding: 1.2rem 1.6rem; border-radius: .6rem; font-size: 1.4rem; line-height: 1.7; }
.zeno-document__content .zn-roles__bar--zeno { background: #1b5da9; color: #fff; }
.zeno-document__content .zn-roles__bar--partner { background: #e3ebfb; color: #001125; }
.zeno-document__content .zn-roles__bar--client { border: 1px dashed #b1b8c2; color: #203449; }
.zeno-document__content .zn-roles__span { display: none; }
/* プロフィール */
.zeno-document__content .zn-profile { display: grid; grid-template-columns: 24rem minmax(0, 1fr); gap: 3.2rem; align-items: center; }
.zeno-document__content .zn-profile img { display: block; width: 100%; border-radius: 1rem; }
.zeno-document__content .zn-profile__role { margin: 0; color: #a57841; font-size: 1.4rem; }
.zeno-document__content .zn-profile__name { margin: .4rem 0 0; color: #001125; font-family: "Noto Serif JP", serif; font-size: 3rem; line-height: 1.4; }
.zeno-document__content .zn-profile__kana { margin: 0; color: #5b6b7c; font-size: 1.3rem; }
.zeno-document__content .zn-profile__catch { margin: 1.6rem 0 0; color: #001125; font-size: 1.6rem; font-weight: 700; line-height: 1.8; }
.zeno-document__content .zn-timeline { margin: 0; padding: 0 0 0 .2rem; list-style: none; border-left: 2px solid #d9e2ec; }
.zeno-document__content .zn-timeline > li { position: relative; padding: 0 0 2.4rem 2.8rem; }
.zeno-document__content .zn-timeline > li::before { content: ""; position: absolute; left: -.7rem; top: .8rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #a57841; }
.zeno-document__content .zn-timeline__period { display: block; color: #a57841; font-size: 1.3rem; letter-spacing: .04em; }
.zeno-document__content .zn-timeline__org { display: block; color: #001125; font-size: 1.7rem; font-weight: 700; line-height: 1.5; }
.zeno-document__content .zn-timeline p { margin: .4rem 0 0; font-size: 1.45rem; line-height: 1.8; }
/* CTA */
.zeno-document__content .zn-cta { margin-top: 6.4rem; padding: 4rem 3.2rem; border-radius: 1.2rem; background: #051c45; color: #fff; text-align: center; }
.zeno-document__content .zn-cta__title { margin: 0; font-family: "Noto Serif JP", serif; font-size: 2.4rem; line-height: 1.5; }
.zeno-document__content .zn-cta p { margin: 1.2rem auto 0; max-width: 56rem; color: #d6e0f0; font-size: 1.5rem; line-height: 1.9; }
.zeno-document__content a.zn-cta__btn { display: inline-block; margin-top: 2.4rem; padding: 1.4rem 4rem; border-radius: .4rem; background: #a57841; color: #fff; font-weight: 700; text-decoration: none; transition: opacity .2s; }
.zeno-document__content a.zn-cta__btn:hover { opacity: .85; }
@media (max-width: 870px) {
    .zeno-document__content .zn-lead { padding: 1.6rem 1.8rem; font-size: 1.6rem; }
    .zeno-document__content .zn-flow { grid-template-columns: 1fr; gap: 2.8rem; }
    .zeno-document__content .zn-flow > li:not(:last-child)::after { top: auto; right: auto; bottom: -1.9rem; left: 50%; transform: translateX(-50%) rotate(135deg); }
    .zeno-document__content .zn-profile { grid-template-columns: 1fr; gap: 2rem; }
    .zeno-document__content .zn-profile img { max-width: 22rem; }
    .zeno-document__content .zn-box { padding: 1.8rem; }
    .zeno-document__content .zn-roles { display: block; min-width: 0; }
    .zeno-document__content .zn-roles__ph { display: none; }
    .zeno-document__content .zn-roles__bar + .zn-roles__bar { margin-top: .8rem; }
    .zeno-document__content .zn-roles__span { display: block; margin-bottom: .2rem; font-size: 1.2rem; font-weight: 700; opacity: .8; }
    .zeno-document__content .zn-cta { padding: 3.2rem 2rem; }
    .zeno-document__content .zn-cta__title { font-size: 2rem; }
}

/* B-3: トップから下層ページへの導線（2026-10-17 追加） */
.zeno-more { margin-top: 4rem; text-align: center; }
.zeno-more--left { margin-top: 2.4rem; text-align: left; }
.zeno-more-link { display: inline-flex; align-items: center; gap: 1.2rem; padding: 1.3rem 3.2rem; border: 1px solid #051c45; border-radius: 99px; background: #fff; color: #051c45; font-size: 1.5rem; font-weight: 700; line-height: 1.5; text-decoration: none; transition: background-color .2s, color .2s; }
.zeno-more-link::after { content: "→"; font-weight: 400; }
.zeno-more-link:hover { background: #051c45; color: #fff; }
@media (max-width: 870px) { .zeno-more { margin-top: 3.2rem; } .zeno-more-link { padding: 1.2rem 2.4rem; font-size: 1.4rem; } }

/* B-4: 代表プロフィールの文字サイズを拡大（2026-10-17 追加） */
.page-id-46 .zeno-document__content { font-size: 1.8rem; }
.page-id-46 .zeno-document__content h2 { font-size: 2.8rem; }
.page-id-46 .zeno-document__content .zn-profile__role { font-size: 1.6rem; }
.page-id-46 .zeno-document__content .zn-profile__name { font-size: 3.6rem; }
.page-id-46 .zeno-document__content .zn-profile__kana { font-size: 1.5rem; }
.page-id-46 .zeno-document__content .zn-profile__catch { font-size: 1.9rem; }
.page-id-46 .zeno-document__content .zn-timeline__period { font-size: 1.5rem; }
.page-id-46 .zeno-document__content .zn-timeline__org { font-size: 1.9rem; }
.page-id-46 .zeno-document__content .zn-timeline p, .page-id-46 .zeno-document__content .zn-card p { font-size: 1.65rem; }
.page-id-46 .zeno-document__content .zn-card__no { font-size: 1.5rem; }
.page-id-46 .zeno-document__content .zn-card__title { font-size: 1.9rem; }
.page-id-46 .zeno-document__content .zn-card__more, .page-id-46 .zeno-document__content .zn-note { font-size: 1.5rem; }
.page-id-46 .zeno-document__content .zn-cta p { font-size: 1.65rem; }
@media (max-width: 870px) {
    .page-id-46 .zeno-document__content { font-size: 1.7rem; }
    .page-id-46 .zeno-document__content h2 { font-size: 2.4rem; }
    .page-id-46 .zeno-document__content .zn-profile__name { font-size: 3.2rem; }
}

/* B-5: サイト全体のスクロール演出・ホバー、フッターボタン幅（2026-10-17 追加） */
.zn-rv { opacity: 0; transform: translateY(2.4rem); transition: opacity .7s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.zn-rv.is-in { opacity: 1; transform: none; }
.zeno-document__content a.zn-card { transition: border-color .2s, box-shadow .25s, transform .25s; }
.zeno-document__content a.zn-card:hover { transform: translateY(-.3rem); }
.zeno-document__content .zn-card__more, .zeno-more-link::after { display: inline-block; transition: transform .25s; }
.zeno-document__content a.zn-card:hover .zn-card__more, .zeno-more-link:hover::after { transform: translateX(.4rem); }
.zeno-document__content a.zn-cta__btn { transition: opacity .2s, transform .25s, box-shadow .25s; }
.zeno-document__content a.zn-cta__btn:hover { opacity: 1; transform: translateY(-.2rem); box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .25); }
@media (min-width: 871px) { .footer__btn { width: 22rem; } }
@media (prefers-reduced-motion: reduce) {
    .zn-rv { opacity: 1; transform: none; transition: none; }
    .zeno-document__content a.zn-card:hover, .zeno-document__content a.zn-cta__btn:hover { transform: none; }
}
