/* =========================================================================
   D案 下層ページ（2026-10）。refine.css の後に読み込む。
   下層の見出し帯・本文の地・各ページの部品と、その中間幅／スマホ指定。
   ========================================================================= */

/* ---- 下層：ページ見出し・本文の地・帯・コールアウト ---- */
.p-page-heading::before { background: linear-gradient(90deg, rgba(22,58,62,0.9) 0%, rgba(22,58,62,0.7) 45%, rgba(22,58,62,0.25) 100%); }
.p-page-heading::after { content: none; }
.p-page-heading .p-label { font-size: 12px; letter-spacing: 0.24em; }
.p-page-heading__title { margin-top: 18px; letter-spacing: 0.04em; }
.p-page-heading__lead { margin-top: 18px; font-size: 16px; line-height: 1.9; letter-spacing: 0.04em; }
.p-page-heading .breadcrumbs { margin-top: 28px; }
.p-page-content { padding-block: 112px; }
.p-page-content--soft { background: var(--p-bg-soft); }
.p-section { margin-top: 112px; }
.p-band { margin-top: 112px; padding-block: 112px; }
.p-band--soft { background: var(--p-bg-soft); }
.p-band > .p-container > .p-section:first-child { margin-top: 0; }
.p-band + .p-container > .p-section:first-child { margin-top: 112px; }
.p-callout { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px 48px; margin-top: 64px; padding: 44px 56px; }
.p-callout > .p-label { flex-basis: 100%; margin: 0 0 -10px; font-size: 12px; letter-spacing: 0.24em; }
.p-callout h2 { flex: 1 1 360px; margin: 0; font-size: 24px; line-height: 1.6; letter-spacing: 0.04em; }
.p-callout .p-button { margin-top: 0; }
.p-spec-table { margin-top: 0; border-top: 2px solid var(--p-primary-deep); font-size: 15px; }
.p-spec-table caption { margin-bottom: 20px; font-size: 24px; letter-spacing: 0.04em; }
.p-spec-table tr:first-child th, .p-spec-table tr:first-child td { border-top: 0; }
.p-spec-table th { width: 200px; padding: 22px 24px; font-size: 14px; letter-spacing: 0.04em; }
.p-spec-table td { padding: 22px 28px; }

/* 事業詳細：製品写真＋説明・スペック、その他の分野 */
.p-biz-detail { display: grid; grid-template-columns: 520px minmax(0, 1fr); gap: 72px; align-items: start; }
.p-biz-detail > * { min-width: 0; }
.p-biz-detail__photo { height: 420px; margin: 0; overflow: hidden; border: 1px solid var(--p-line); border-radius: var(--p-radius); background: var(--p-white); }
.p-biz-detail__photo .p-image--product { padding: 48px; }
.p-biz-detail__intro { font-size: 17px; line-height: 2.1; letter-spacing: 0.04em; }
.p-biz-detail__spec { margin-top: 36px; }
.p-biz-detail__spec > .p-label { margin: 0 0 12px; }
.p-other-fields { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.p-other-fields:has(> :nth-child(6)) { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.p-other-fields:has(> :nth-child(6)) .p-other-fields__name { font-size: 13px; letter-spacing: 0; }
.p-other-fields a { display: flex; flex-direction: column; gap: 12px; color: var(--p-ink); }
.p-other-fields__photo { display: block; height: 130px; overflow: hidden; border: 1px solid var(--p-line); border-radius: var(--p-radius); background: var(--p-white); }
.p-other-fields__photo .p-image--product { padding: 16px; }
.p-other-fields__name { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; letter-spacing: 0.04em; }
.p-other-fields__name .p-icon { flex-shrink: 0; width: 14px; height: 14px; color: var(--p-primary-deep); transition: transform 0.2s; }
.p-other-fields a:hover { color: var(--p-primary-deep); }
.p-other-fields a:hover .p-icon { transform: translateX(3px); }

/* 事例：絞り込み・詳細 */
.p-page-content:has(> .p-band:last-child) { padding-bottom: 0; }
.p-filters { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px 24px; align-items: center; margin-bottom: 56px; padding: 28px 32px; border: 0; border-radius: var(--p-radius); background: var(--p-bg-soft); }
.p-filters__row { display: contents; }
.p-filters__label { padding-top: 0; color: var(--p-primary-deep); font-size: 13px; }
.p-filter-links { gap: 8px; }
.p-filter-links a { padding: 10px 20px; border-radius: 999px; background: var(--p-white); font-size: 14px; font-weight: 700; }
.p-filter-links a:hover, .p-filter-links a[aria-current] { border-color: var(--p-primary); background: var(--p-primary); }
.p-tags { gap: 8px; }
.p-tag { padding: 3px 10px; border: 0; border-radius: 4px; background: var(--p-primary-pale); color: var(--p-primary-deep); font-size: 12px; font-weight: 700; }
.p-case-top { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 72px; align-items: start; }
.p-case-top > * { min-width: 0; }
.p-case-top__photo { height: 400px; margin: 0; overflow: hidden; border: 1px solid var(--p-line); border-radius: var(--p-radius); background: var(--p-white); }
.p-case-top__photo .p-image { width: 100%; height: 100%; object-fit: contain; padding: 40px; }
.p-case-overview h2 { margin: 22px 0 0; font-size: 24px; }
.p-case-overview .p-prose { margin-top: 14px; font-size: 16px; line-height: 2.1; }
.p-case-top__body .p-spec-table { margin-top: 32px; }
.p-case-top__body .p-spec-table th { width: 160px; }
.p-case-boxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 72px; }
.p-case-box { padding: 36px 40px; border-radius: var(--p-radius); background: var(--p-bg-soft); }
.p-case-box--solution { background: var(--p-primary-pale); }
.p-case-box h2 { margin: 12px 0 0; font-size: 22px; }
.p-case-box .p-prose { margin-top: 14px; font-size: 15px; line-height: 2; }

/* ご依頼の流れ：円の番号をつなぐ横のタイムライン＋FAQカード */
.p-flow-steps { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.p-flow-steps::before { content: ""; position: absolute; left: 40px; right: 40px; top: 40px; height: 2px; background: var(--p-primary-pale); }
.p-flow-steps li { position: relative; display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 0; text-align: left; border: 0; background: none; box-shadow: none; }
.p-flow-steps li::before, .p-flow-steps li::after { content: none; }
.p-flow-steps__number { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 80px; height: 80px; border: 2px solid var(--p-primary); border-radius: 50%; background: var(--p-white); color: var(--p-primary-deep); font-size: 24px; font-weight: 600; line-height: 1.2; letter-spacing: 0.1em; }
.p-flow-steps li:first-child .p-flow-steps__number { background: var(--p-primary); color: var(--p-white); }
.p-flow-steps__step { font-size: 11px; }
.p-flow-steps__text { display: flex; flex-direction: column; gap: 16px; }
.p-flow-steps h2 { margin: 0; font-size: 19px; letter-spacing: 0.04em; }
.p-flow-steps p { margin: 0; color: var(--p-text); font-size: 13px; line-height: 1.9; }
.p-faq-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; }
.p-faq-cards__item { display: flex; flex-direction: column; gap: 14px; padding: 28px 32px; border-radius: var(--p-radius); background: var(--p-white); }
.p-faq-cards dt, .p-faq-cards dd { display: flex; gap: 14px; margin: 0; }
.p-faq-cards dt { align-items: baseline; font-size: 17px; font-weight: 700; letter-spacing: 0.04em; }
.p-faq-cards dd { color: var(--p-text); font-size: 14px; line-height: 2; }
.p-faq-cards .en { flex-shrink: 0; font-size: 20px; font-weight: 600; line-height: 1.4; }
.p-faq-cards dt .en { color: var(--p-primary); }
.p-faq-cards dd .en { color: var(--p-muted); }
.p-faq-cards__answer { min-width: 0; }
.p-faq-cards__answer > * { margin: 0; }
.p-faq-cards__answer > * + * { margin-top: 10px; }
.p-faq-cards__answer a { color: var(--p-primary-deep); text-decoration: underline; }
.p-faq-group + .p-faq-group { margin-top: 56px; }
.p-faq-group__title { margin: 0 0 20px; padding-bottom: 12px; border-bottom: 2px solid var(--p-primary-deep); font-size: 22px; letter-spacing: 0.04em; }
.p-faq-single { max-width: 880px; }
.p-faq-cards--single { grid-template-columns: minmax(0, 1fr); }

/* 会社案内：代表挨拶・拠点カード・認証 */
.p-message { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 80px; align-items: start; }
.p-message__body { font-size: 15px; line-height: 2.1; letter-spacing: 0.04em; }
.p-message__body .p-title { margin-top: 14px; font-size: 36px; letter-spacing: 0.04em; }
.p-message__body .p-title + p { margin-top: 28px; }
.p-message__body > p + p { margin-top: 18px; }
.p-message__body .p-signature { margin-top: 32px; padding-top: 0; text-align: left; letter-spacing: 0.08em; }
.p-message__photo { height: 500px; margin: 0; overflow: hidden; border-radius: var(--p-radius); }
.p-message__photo .p-image { width: 100%; height: 100%; object-fit: cover; }
.p-band .p-spec-table { background: var(--p-white); }
.p-base-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.p-base { gap: 0; overflow: hidden; border: 1px solid var(--p-line); border-radius: var(--p-radius); }
.p-base__photo { height: 220px; }
.p-base__photo .p-image { width: 100%; height: 100%; object-fit: cover; }
.p-base__photo--solo { height: 336px; } /* 220px＋サブ写真の段 112px＋間 4px */
.p-base__sub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; height: 112px; margin: 4px 0 0; padding: 0; list-style: none; }
.p-base__sub li { position: relative; overflow: hidden; }
.p-base__sub .p-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.p-base__sub span { position: absolute; left: 0; bottom: 0; padding: 3px 10px; background: rgba(0, 0, 0, 0.55); color: #fff; font-size: 11px; line-height: 1.6; }
.p-base__body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 24px 26px 28px; }
.p-base h3 { display: flex; align-items: baseline; gap: 12px; padding-top: 0; border-top: 0; font-size: 19px; }
.p-base h3 .en { color: var(--p-primary); font-size: 13px; font-weight: 600; }
.p-base address { display: flex; flex-direction: column; gap: 10px; font-size: 13px; line-height: 1.9; }
.p-base address p { margin: 0; }
.p-base address a { color: var(--p-ink); font-size: 15px; font-weight: 600; }
.p-base address .p-base__fax { margin-top: -6px; color: var(--p-ink); font-size: 14px; }
.p-base address small { margin-top: -6px; color: var(--p-muted); font-size: 12px; }
.p-base__map { margin-top: 8px; overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid var(--p-line); border-radius: var(--p-radius); background: var(--p-bg-soft); }
.p-base__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.p-cert { display: flex; align-items: center; gap: 48px; padding: 40px 48px; border-radius: var(--p-radius); background: var(--p-primary-pale); }
.p-cert__chips { display: flex; flex-shrink: 0; gap: 10px; margin: 0; padding: 0; list-style: none; }
.p-cert__chips li { padding: 14px 20px; border-radius: var(--p-radius); background: var(--p-white); color: var(--p-primary-deep); font-size: 16px; font-weight: 700; }
.p-cert p { margin: 0; color: var(--p-text); font-size: 15px; line-height: 2; }
.p-cert__body { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }

/* 認証ロゴの並び（会社案内・品質ページ・フッター共通。ロゴは管理画面で差し替え可） */
.p-cert-logos { display: flex; flex-wrap: wrap; flex-shrink: 0; gap: 12px; margin: 0; padding: 0; list-style: none; }
.p-cert-logos li { display: flex; align-items: center; justify-content: center; padding: 12px; border-radius: var(--p-radius); background: var(--p-white); }
.p-cert-logos img { display: block; width: auto; max-width: 196px; height: auto; max-height: 170px; }

/* プライバシーポリシー（2026-10-07 追加） */
.p-privacy .p-privacy__date { margin-top: 56px; text-align: right; }

/* 品質・環境への取り組み（2026-10-07 追加） */
.p-quality-intro { display: flex; align-items: center; gap: 48px; padding: 40px 48px; border-radius: var(--p-radius); background: var(--p-primary-pale); }
.p-quality-intro__body p { margin: 0; color: var(--p-text); font-size: 15px; line-height: 2; }
.p-quality-iso__text { margin: 0 0 28px; color: var(--p-text); font-size: 15px; line-height: 2; }
.p-quality-docs { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.p-quality-docs a { display: inline-flex; align-items: center; gap: 12px; padding: 14px 22px; border: 1px solid var(--p-line); border-radius: var(--p-radius); background: var(--p-white); color: var(--p-ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.p-quality-docs a:hover { border-color: var(--p-primary); color: var(--p-primary-deep); }
.p-quality-docs__type { padding: 2px 8px; border-radius: 4px; background: var(--p-primary-deep); color: var(--p-white); font-size: 11px; letter-spacing: 0.06em; }

/* 会社案内：沿革（2026-10-07 追加） */
.p-history__list { margin: 0; border-top: 2px solid var(--p-primary-deep); background: var(--p-white); font-size: 15px; }
.p-history__item { display: grid; grid-template-columns: 240px minmax(0, 1fr); border-bottom: 1px solid var(--p-line); }
.p-history__item dt { padding: 22px 24px; color: var(--p-primary-deep); font-size: 14px; font-weight: 700; letter-spacing: 0.04em; }
.p-history__item dd { margin: 0; padding: 22px 28px; line-height: 1.9; }

/* 会社案内：本社の様子（2026-10-07 追加） */
.p-office-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.p-office { margin: 0; }
.p-office .p-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--p-radius); }
.p-office figcaption { margin-top: 10px; color: var(--p-muted); font-size: 13px; }

/* 選ばれる理由：写真と文章の交互配置 */
.p-reason + .p-reason { margin-top: 112px; padding-top: 0; border-top: 0; }
.p-reason__row { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 80px; align-items: center; }
.p-reason__row > * { min-width: 0; }
.p-reason--reverse .p-reason__row { grid-template-columns: minmax(0, 1fr) 560px; }
.p-reason--reverse .p-reason__photo { grid-column: 2; grid-row: 1; }
.p-reason--reverse .p-reason__body { grid-column: 1; grid-row: 1; }
.p-reason__photo { height: 440px; margin: 0; overflow: hidden; border-radius: var(--p-radius); }
.p-reason__photo .p-image { width: 100%; height: 100%; object-fit: cover; }
.p-reason__label { display: flex; align-items: baseline; gap: 14px; margin: 0; color: var(--p-primary-deep); font-size: 13px; font-weight: 600; letter-spacing: 0.24em; }
.p-reason__num { color: var(--p-primary); font-size: 56px; line-height: 1; letter-spacing: 0; }
.p-reason__title { margin: 22px 0 0; font-size: 28px; line-height: 1.6; letter-spacing: 0.04em; }
.p-reason__body > p:not(.p-reason__label):not(.p-process-note) { margin: 20px 0 0; color: var(--p-text); font-size: 15px; line-height: 2.1; letter-spacing: 0.04em; }
.p-reason__title + p { margin-top: 28px !important; }
.p-reason .p-diagram { margin-top: 56px; }
.p-reason-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 32px 0 0; padding: 0; overflow: hidden; border: 1px solid var(--p-line); border-radius: var(--p-radius); list-style: none; }
.p-reason-steps li { display: flex; flex-direction: column; gap: 6px; padding: 18px 16px; }
.p-reason-steps li + li { border-left: 1px solid var(--p-line); }
.p-reason-steps .en { color: var(--p-primary); font-size: 11px; font-weight: 600; }
.p-reason-steps h3 { margin: 0; font-size: 16px; }
.p-reason-steps p { margin: 0; color: var(--p-muted); font-size: 12px; line-height: 1.6; }
.p-reason .p-process-note { justify-content: flex-start; margin: 14px 0 0; padding: 0; background: none; color: var(--p-primary-deep); font-size: 14px; text-align: left; }
.p-reason .p-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 32px; }
.p-reason .p-trust-grid > div { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; }
.p-reason .p-trust-grid dt { font-size: 18px; }
.p-reason .p-trust-grid dd { margin: 0; font-size: 12px; }

/* お知らせ：一覧＋月別アーカイブ、記事 */
.p-news-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 72px; align-items: start; }
.p-news-layout__main { min-width: 0; }
.p-news-layout .p-news__list { border-top: 1px solid var(--p-line); }
.p-news-layout .p-news__item { border-bottom: 1px solid var(--p-line); }
.p-side-box { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px; border-radius: var(--p-radius); background: var(--p-bg-soft); }
.p-side-box .p-label { display: flex; gap: 14px; margin: 0; }
.p-side-box ul { margin: 0; padding: 0; list-style: none; }
.p-side-box a { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--p-line); color: var(--p-ink); font-size: 14px; font-weight: 700; }
.p-side-box a .p-icon { width: 14px; height: 14px; color: var(--p-primary-deep); }
.p-side-box a:hover { color: var(--p-primary-deep); }
.p-news-body { max-width: 880px; margin-inline: 0; }
.p-news-body .p-article-meta { gap: 14px; margin-bottom: 36px; padding-bottom: 28px; border-bottom: 1px solid var(--p-line); }
.p-news-body .p-article-meta time { font-size: 15px; font-weight: 500; }
.p-news-body .p-tag { border: 1px solid var(--p-primary); background: none; }
.p-news-body .entry__content { color: var(--p-text); font-size: 16px; line-height: 2.1; }
.p-news-body .p-article-nav { margin-top: 64px; padding-top: 28px; font-size: 14px; font-weight: 700; }
.p-news-body .p-article-nav:empty { display: none; }
.p-article-back { margin: 40px 0 0; }
.p-news-body .p-article-nav:empty + .p-article-back { margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--p-line); }

/* 採用・協力会社 */
.p-callout > p:not(.p-label) { flex: 1 1 360px; margin: 0; color: var(--p-text); font-size: 15px; line-height: 2; }
.p-spec-table + .p-callout { margin-top: 48px; }
.p-partner { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 72px; align-items: start; }
.p-partner__main { min-width: 0; }
.p-partner__main .p-title { margin-top: 14px; font-size: 32px; letter-spacing: 0.04em; }
.p-partner__main > p:not(.p-label) { font-size: 16px; line-height: 2.1; }
.p-partner__main .p-spec-table { margin-top: 32px; }
.p-partner__main .p-spec-table th { width: 180px; }
.p-partner__card { display: flex; flex-direction: column; gap: 16px; padding: 40px; border-radius: var(--p-radius); background: var(--p-primary-deep); color: var(--p-white); }
.p-partner__card .p-label { margin: 0; color: var(--p-primary-light); }
.p-partner__card p:not(.p-label) { margin: 0; color: rgba(255,255,255,0.88); font-size: 15px; line-height: 2; }
.p-partner__button { display: flex; justify-content: space-between; align-items: center; height: 60px; margin-top: 8px; padding: 0 12px 0 26px; border-radius: var(--p-radius); background: var(--p-primary); color: var(--p-white); font-size: 16px; font-weight: 700; transition: background-color 0.2s; }
.p-partner__button:hover { color: var(--p-white); background: var(--p-primary-dark); }
.p-partner__button-circle { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.18); }
.p-partner__button-circle .p-icon { width: 16px; height: 16px; }

/* 404 */
.p-not-found { position: relative; overflow: hidden; padding: 160px 0; background: var(--p-bg-soft); text-align: center; }
.p-not-found__mark { position: absolute; inset: 0; pointer-events: none; }
.p-not-found__mark .p-logo-mark { width: 100%; height: 100%; }
.p-not-found__inner { position: relative; display: flex; flex-direction: column; align-items: center; }
.p-not-found__code { margin: 0; color: var(--p-primary); font-size: 120px; font-weight: 600; line-height: 1; }
.p-not-found .p-label { margin: 14px 0 0; }
.p-not-found__title { margin: 24px 0 0; font-size: 32px; letter-spacing: 0.04em; }
.p-not-found__text { margin: 18px 0 0; color: var(--p-text); font-size: 15px; line-height: 2; }
.p-not-found .p-button { margin-top: 0; }
.p-not-found__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 32px; margin-top: 36px; }

/* ナノブレンダー（配色は nb-blender.css の専用パレットを継承） */
.p-nb-order { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 48px; padding: 36px 40px; border-radius: var(--p-radius); background: var(--p-bg-soft); }
.p-nb-order h3 { margin: 8px 0 12px; font-size: 22px; }
.p-nb-order p { margin: 0; font-size: 14px; line-height: 1.9; }
.p-nb-order .p-button { flex-shrink: 0; }
.p-nb-works__title { margin: 56px 0 24px; font-size: 22px; }
.p-nb-works__title--first { margin-top: 0; margin-bottom: 8px; }
.p-nb-note--after { margin: 20px 0 0; }
.p-nb-works .p-work__image img { object-fit: contain; background: var(--p-white); }
.p-nb-header { min-height: 76px; padding: 0 0 0 40px; gap: 24px; color: var(--p-ink); background: var(--p-white); border-bottom: 1px solid var(--p-line); }
.p-nb-header__logo { padding: 0; }
.p-nb-header__brand { display: flex; align-items: baseline; gap: 14px; color: var(--p-ink); font-size: 22px; letter-spacing: 0.04em; }
.p-nb-header__brand small { display: inline; color: var(--p-muted); font-size: 12px; font-weight: 400; }
.p-nb-header__nav { gap: 32px; align-self: stretch; }
.p-nb-header__nav > a:not(.p-nb-header__cta) { color: var(--p-primary-deep); font-weight: 700; }
.p-nb-header__cta { display: flex; align-items: center; gap: 12px; height: 100%; min-height: 76px; padding: 0 36px; background: var(--p-primary); color: var(--p-white) !important; font-size: 15px; font-weight: 700; }
.p-nb-header__cta:hover { background: var(--p-primary-dark); }
.p-nb-header__cta .p-icon { width: 14px; height: 14px; }
.p-nb-hero { display: grid; grid-template-columns: minmax(0, 1fr) 640px; padding: 0; background: var(--p-deep); }
.p-nb-hero__body { position: relative; overflow: hidden; }
.p-nb-hero__inner { position: relative; padding: 88px 40px 112px max(20px, calc((100vw - 1200px) / 2)); }
.p-nb-hero .breadcrumbs { margin: 0 0 28px; }
.p-nb-hero h1 { margin-top: 26px; font-size: 44px; line-height: 1.55; letter-spacing: 0.04em; }
.p-nb-hero__lead { margin: 24px 0 0; color: rgba(255,255,255,0.88); font-size: 16px; line-height: 2; }
.p-nb-hero__note { margin: 14px 0 0; color: var(--p-primary-light); font-size: 13px; }
.p-nb-actions { gap: 14px; margin-top: 36px; }
.p-nb-product { position: relative; border-radius: 0; background: none; }
.p-nb-product .p-image { width: 100%; height: 100%; min-height: 560px; aspect-ratio: auto; object-fit: cover; padding: 0; }
.p-nb-product figcaption { position: absolute; left: 0; bottom: 0; padding: 10px 18px; background: var(--p-deep); font-size: 12px; letter-spacing: 0.08em; }
.p-nb-section { padding-block: 112px; }
.p-nb-section--flow { padding-top: 0; }
.p-nb-about { display: grid; grid-template-columns: minmax(0, 1fr) 600px; gap: 80px; align-items: center; }
.p-nb-about .p-title { margin-top: 14px; font-size: 34px; line-height: 1.5; letter-spacing: 0.04em; }
.p-nb-about__lead { margin: 24px 0 0; color: var(--p-text); font-size: 16px; line-height: 2.1; }
.p-nb-about__note { margin: 16px 0 0; color: var(--p-muted); font-size: 14px; line-height: 2; }
.p-nb-facts { display: flex; flex-direction: column; gap: 0; margin: 0; border-top: 2px solid var(--p-primary-deep); }
.p-nb-facts > div { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 24px 8px; border-bottom: 1px solid var(--p-line); border-radius: 0; background: none; }
.p-nb-facts dt { color: var(--p-primary-deep); font-size: 26px; font-weight: 700; }
.p-nb-facts dd { margin: 0; color: var(--p-text); font-size: 15px; }
.p-nb .p-section-heading + .p-nb-note { margin-top: -36px; }
.p-nb-note { margin: 0 0 32px; color: var(--p-muted); font-size: 13px; }
.p-nb-uses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.p-nb-use-card { display: flex; flex-direction: column; gap: 12px; padding: 32px; border: 0; }
.p-nb-use-card .p-placeholder { border: 1px dashed var(--p-line); border-radius: var(--p-radius); background: var(--p-bg-soft); font-size: 12px; }
.p-nb-use-card__num { color: var(--p-primary); font-size: 32px; font-weight: 600; line-height: 1.3; }
.p-nb-use-card h3 { margin: 0; }
.p-nb-use-card p { margin: 0; color: var(--p-text); line-height: 1.9; }
.p-nb-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.p-nb-flow li { display: flex; flex-direction: column; gap: 10px; padding: 28px 24px; border-top: 3px solid var(--p-primary); border-radius: 0 0 var(--p-radius) var(--p-radius); background: var(--p-bg-soft); }
.p-nb-flow .en { color: var(--p-primary); font-size: 12px; font-weight: 600; letter-spacing: 0.16em; }
.p-nb-flow h3 { margin: 0; font-size: 18px; }
.p-nb-flow p { margin: 0; color: var(--p-text); font-size: 13px; line-height: 1.9; }
.p-nb-contact { padding-block: 96px; background: var(--p-ink); text-align: left; }
.p-nb-contact__inner { display: grid; grid-template-columns: minmax(0, 1fr) 520px; gap: 64px; align-items: center; }
.p-nb-contact h2 { margin-top: 22px; color: var(--p-white); font-size: 32px; line-height: 1.6; }
.p-nb-contact__text > p:last-child { margin: 18px 0 0; color: rgba(255,255,255,0.8); font-size: 14px; line-height: 2; }
.p-nb-contact__actions { display: flex; flex-direction: column; gap: 12px; }
.p-nb-contact__action { display: flex; justify-content: space-between; align-items: center; height: 84px; padding: 0 24px; border-radius: var(--p-radius); color: var(--p-white); transition: background-color 0.2s, border-color 0.2s; }
.p-nb-contact__action:hover { color: var(--p-white); }
.p-nb-contact__action .p-icon { width: 18px; height: 18px; }
.p-nb-contact__action--mail { background: var(--p-primary); font-size: 18px; font-weight: 700; }
.p-nb-contact__action--mail:hover { background: var(--p-primary-dark); }
.p-nb-contact__action--tel { border: 1px solid rgba(255,255,255,0.3); }
.p-nb-contact__action--tel:hover { border-color: rgba(255,255,255,0.6); }
.p-nb-contact__tel { display: flex; flex-direction: column; gap: 2px; }
.p-nb-contact__tel small { color: rgba(255,255,255,0.7); font-size: 11px; }
.p-nb-contact__tel .en { font-size: 26px; font-weight: 600; }
.p-nb-footer { padding-block: 40px; border-top: 0; background: var(--p-deep); color: rgba(255,255,255,0.75); }
.p-nb-footer .p-container.p-nb-footer__inner { flex-direction: row; justify-content: space-between; align-items: center; gap: 24px; }
.p-nb-footer__info { display: flex; flex-direction: column; gap: 6px; }
.p-nb-footer__info p { margin: 0; color: var(--p-white); font-size: 16px; font-weight: 700; }
.p-nb-footer nav { align-items: center; }
.p-nb-footer a { color: rgba(255,255,255,0.75); }
.p-nb-footer a:hover { color: var(--p-white); }

/* お問い合わせ：電話窓口（左）＋フォーム（右） */
.p-contact-layout { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 64px; align-items: start; }
.p-contact-intro { position: sticky; top: 108px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 12px; padding: 32px 30px; border-radius: var(--p-radius); background: var(--p-primary-deep); color: var(--p-white); }
.p-contact-intro .p-label { margin: 0; color: var(--p-primary-light); }
.p-contact-intro h2 { margin: 0; font-size: 20px; line-height: 1.6; }
.p-contact-intro p { margin: 0; color: rgba(255,255,255,0.85); font-size: 14px; line-height: 1.9; }
.p-contact-intro__tel { margin-top: 8px; color: var(--p-white); font-size: 30px; font-weight: 600; line-height: 1; letter-spacing: 0.02em; }
.p-contact-intro__tel:hover { color: var(--p-primary-light); }
.p-contact-intro .p-contact-intro__hours { color: rgba(255,255,255,0.7); font-size: 12px; }
.p-contact-intro a:focus-visible { outline-color: var(--p-primary-light); }
.p-mailform { max-width: none; margin-bottom: 0; }
.p-mailform .form__inner { margin-top: 48px; }
.p-form-progress ol { gap: 0; overflow: hidden; border: 1px solid var(--p-line); border-radius: var(--p-radius); }
.p-form-progress li { display: flex; flex-direction: column; gap: 2px; padding: 16px; border: 0; background: var(--p-white); color: var(--p-muted); font-size: 15px; }
.p-form-progress li + li { border-left: 1px solid var(--p-line); }
.p-form-progress li::before { content: "STEP " counter(form-progress); margin: 0; font-size: 11px; font-weight: 600; letter-spacing: 0.16em; }
.p-form-progress li[aria-current] { color: var(--p-white); background: var(--p-primary); }
.p-form-section + .p-form-section { margin-top: 48px; }
.p-form-step { display: flex; align-items: center; gap: 12px; margin: 0; padding: 0 0 14px; border-bottom: 2px solid var(--p-primary-deep); color: var(--p-ink); background: none; font-size: 22px; }
.p-form-step__num { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--p-primary); color: var(--p-white); font-size: 15px; }
.p-mailform .form__list { padding-inline: 0; }
.p-mailform .form__listItem { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--p-line); }
.p-mailform .form__listItem + .form__listItem { margin-top: 0; }
.p-mailform .form__listLabel { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; padding: 14px 0 0; font-size: 15px; }
.p-mailform .form__listInputBox { margin-top: 0; min-width: 0; }
.p-mailform .hissu { position: static; transform: none; width: auto; height: auto; padding: 2px 8px; border-radius: 4px; background: var(--p-primary); font-size: 11px; line-height: 1.6; }
.p-mailform .form__input { height: 56px; border-color: #cfd9d9; font-size: 15px; }
.p-mailform .form__textarea { min-height: 180px; border-color: #cfd9d9; font-size: 15px; }
.p-mailform .form__input::placeholder, .p-mailform .form__textarea::placeholder { color: #9aa6a8; }
.p-form-options { display: flex; flex-wrap: wrap; gap: 10px; }
.p-mailform .form__radioLabel { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border: 1px solid #cfd9d9; border-radius: var(--p-radius); background: var(--p-white); font-size: 14px; font-weight: 700; line-height: 1.6; transition: border-color 0.2s, background-color 0.2s; }
.p-mailform .form__radioLabel::after { content: none; }
.p-mailform .form__radioLabel::before { content: ""; flex-shrink: 0; width: 18px; height: 18px; border: 2px solid #cfd9d9; border-radius: 50%; background: var(--p-white); box-sizing: border-box; transition: border-color 0.2s, box-shadow 0.2s; }
.p-mailform .form__radio:checked + .form__radioLabel { border-color: var(--p-primary); background: var(--p-primary-pale); }
.p-mailform .form__radio:checked + .form__radioLabel::before { border-color: var(--p-primary); box-shadow: inset 0 0 0 3px var(--p-white); background: var(--p-primary); }
.p-mailform .form__radio:focus-visible + .form__radioLabel { outline: 2px solid var(--p-primary); outline-offset: 2px; }
.p-mailform .form__fileBox { min-height: 72px; border: 1px dashed var(--p-primary); background: var(--p-primary-pale); }
.p-mailform .form__fileButton { padding: 10px 16px; background: var(--p-primary); color: var(--p-white); }
.p-mailform .file__description { margin-top: 10px; color: var(--p-muted); font-size: 12px; line-height: 1.8; }
.p-mailform .form__submitBox { margin-top: 48px; }
.p-mailform .form__link { width: 100%; max-width: 480px; min-height: 64px; background: var(--p-primary); border-color: var(--p-primary); color: var(--p-white); font-size: 17px; }
.p-mailform .form__link:hover { background: var(--p-primary-dark); border-color: var(--p-primary-dark); color: var(--p-white); }

/* ---- 中間幅（961〜1240px）：固定幅の列を比率に置き換え、文章の列が細くならないようにする ---- */
@media (min-width: 961px) and (max-width: 1240px) {
  .p-about__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
  .p-about__photo { height: 460px; }
  .p-about__main { width: 100%; height: 380px; }
  .p-about__inset { width: 200px; height: 136px; }
  .p-about__bases { width: 70%; }
  .p-pickup__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .p-pickup__body { padding: 40px; }
  .p-strengths__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 48px; }
  .p-news__inner { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); gap: 48px; }
  .p-cta__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 40px; }
  .p-cta__action { padding: 24px; }
  .p-cta__action-tel { font-size: 24px; }
  .p-footer__top { grid-template-columns: 320px minmax(0, 1fr); gap: 48px; }
  .p-biz-detail, .p-case-top, .p-reason__row, .p-reason--reverse .p-reason__row, .p-nb-about { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
  .p-biz-detail__photo, .p-case-top__photo { height: 340px; }
  .p-reason__photo { height: 360px; }
  .p-message { grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; }
  .p-message__photo { height: 400px; }
  .p-partner { grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; }
  .p-nb-hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .p-nb-hero__inner { padding-right: 32px; }
  .p-nb-contact__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
  .p-contact-layout { grid-template-columns: 280px minmax(0, 1fr); gap: 40px; }
}

/* ---- スマホ（960px以下） ---- */
@media (max-width: 960px) {
  .p-page-heading { min-height: 280px; }
  .p-page-heading::before { background: linear-gradient(180deg, rgba(22,58,62,0.55) 0%, rgba(22,58,62,0.9) 100%); }
  .p-page-heading__inner { justify-content: flex-end; padding-block: 64px 32px; }
  .p-page-heading .p-label { font-size: 11px; }
  .p-page-heading .p-label--line::before { flex-basis: 24px; }
  .p-page-heading__title { margin-top: 12px; font-size: 26px; letter-spacing: 0.03em; }
  .p-page-heading__lead { margin-top: 12px; font-size: 13px; line-height: 1.85; }
  .p-page-heading .breadcrumbs { margin-top: 16px; font-size: 11px; }
  .p-page-content { padding-block: 56px; }
  .p-section, .p-band, .p-band + .p-container > .p-section:first-child { margin-top: 56px; }
  .p-band { padding-block: 56px; }
  .p-callout { flex-direction: column; align-items: flex-start; gap: 16px; margin-top: 40px; padding: 28px 22px; }
  .p-callout > .p-label { margin-bottom: -8px; font-size: 11px; }
  .p-callout h2 { flex: none; font-size: 18px; }
  .p-spec-table, .p-spec-table tbody, .p-spec-table tr, .p-spec-table th, .p-spec-table td { display: block; width: 100%; }
  .p-spec-table caption { display: block; margin-bottom: 12px; font-size: 20px; }
  .p-spec-table { border-top: 0; }
  .p-spec-table tbody { border-top: 2px solid var(--p-primary-deep); }
  .p-spec-table tr { padding: 14px 0; border-bottom: 1px solid var(--p-line); }
  .p-spec-table th, .p-spec-table td { padding: 0; border: 0; background: none; }
  .p-spec-table th { color: var(--p-primary-deep); font-size: 12px; }
  .p-spec-table td { margin-top: 4px; font-size: 14px; line-height: 1.8; }
  .p-biz-detail { display: flex; flex-direction: column; gap: 22px; }
  .p-biz-detail__photo { width: 100%; height: 220px; }
  .p-biz-detail__photo .p-image--product { padding: 24px; }
  .p-biz-detail__intro { font-size: 14px; line-height: 2; }
  .p-biz-detail__spec { margin-top: 6px; }
  .p-biz-detail__spec > .p-label { margin-bottom: 10px; font-size: 11px; }
  .p-other-fields, .p-other-fields:has(> :nth-child(6)) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .p-other-fields:has(> :nth-child(6)) .p-other-fields__name { font-size: 13px; }
  .p-other-fields__photo { height: 100px; }
  .p-other-fields__name { font-size: 13px; }
  .p-filters { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 32px; padding: 20px; }
  .p-filters__label { font-size: 12px; }
  .p-filter-links a { padding: 8px 14px; font-size: 13px; }
  .p-case-top { display: flex; flex-direction: column; gap: 22px; }
  .p-case-top__photo { width: 100%; height: 220px; }
  .p-case-top__photo .p-image { padding: 20px; }
  .p-case-overview h2 { margin-top: 16px; font-size: 20px; }
  .p-case-overview .p-prose { font-size: 14px; line-height: 2; }
  .p-case-top__body .p-spec-table { margin-top: 24px; }
  .p-case-boxes { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 40px; }
  .p-case-box { padding: 24px 22px; }
  .p-case-box h2 { font-size: 18px; }
  .p-case-box .p-prose { font-size: 14px; line-height: 1.9; }
  .p-flow-steps { display: flex; flex-direction: column; gap: 24px; }
  .p-flow-steps::before { left: 27px; right: auto; top: 28px; bottom: 28px; width: 2px; height: auto; }
  .p-flow-steps li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; }
  .p-flow-steps__number { width: 56px; height: 56px; font-size: 18px; letter-spacing: 0; }
  .p-flow-steps__step { display: none; }
  .p-flow-steps__text { gap: 6px; padding-top: 6px; }
  .p-flow-steps h2 { font-size: 17px; }
  .p-faq-cards { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .p-faq-cards__item { gap: 10px; padding: 18px 16px; }
  .p-faq-cards dt, .p-faq-cards dd { gap: 10px; }
  .p-faq-cards dt { font-size: 15px; line-height: 1.6; }
  .p-faq-cards dd { font-size: 13px; line-height: 1.9; }
  .p-faq-cards .en { font-size: 17px; }
  .p-faq-group + .p-faq-group { margin-top: 36px; }
  .p-faq-group__title { font-size: 18px; }
  .p-message { display: flex; flex-direction: column-reverse; gap: 24px; }
  .p-message__photo { width: 100%; max-width: 350px; height: auto; aspect-ratio: 4 / 5; }
  .p-message__body { font-size: 14px; line-height: 2; }
  .p-message__body .p-title { font-size: 24px; }
  .p-message__body .p-title + p { margin-top: 20px; }
  .p-base-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .p-base__photo { height: 180px; }
  .p-base__photo--solo { height: 180px; }
  .p-base__sub { height: 120px; }
  .p-base__body { padding: 18px 20px 22px; }
  .p-base h3 { font-size: 17px; }
  .p-cert { flex-direction: column; align-items: flex-start; gap: 18px; padding: 24px 20px; }
  .p-cert__chips { flex-wrap: wrap; gap: 8px; }
  .p-cert__chips li { padding: 10px 14px; font-size: 14px; }
  .p-cert p { font-size: 13px; line-height: 1.9; }
  .p-cert-logos img { max-width: 156px; max-height: 136px; }
  .p-quality-intro { flex-direction: column; align-items: flex-start; gap: 18px; padding: 24px 20px; }
  .p-quality-intro__body p { font-size: 13px; line-height: 1.9; }
  .p-quality-iso__text { font-size: 14px; }
  .p-quality-docs a { width: 100%; padding: 12px 16px; font-size: 13px; }
  .p-history__list { font-size: 14px; }
  .p-history__item { grid-template-columns: minmax(0, 1fr); }
  .p-history__item dt { padding: 16px 18px 0; font-size: 13px; }
  .p-history__item dd { padding: 4px 18px 16px; }
  .p-office-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .p-reason + .p-reason { margin-top: 56px; }
  .p-reason__row, .p-reason--reverse .p-reason__row { display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
  .p-reason__photo { height: 220px; }
  .p-reason__label { gap: 10px; font-size: 11px; letter-spacing: 0.2em; }
  .p-reason__num { font-size: 36px; }
  .p-reason__title { margin-top: 14px; font-size: 21px; }
  .p-reason__body > p:not(.p-reason__label):not(.p-process-note) { margin-top: 14px; font-size: 14px; line-height: 2; letter-spacing: 0; }
  .p-reason__title + p { margin-top: 14px !important; }
  .p-reason .p-diagram { margin-top: 28px; }
  .p-reason-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 18px; border: 0; border-radius: 0; }
  .p-reason-steps li { gap: 2px; padding: 12px 14px; border: 1px solid var(--p-line) !important; border-radius: var(--p-radius); }
  .p-reason-steps .en { display: none; }
  .p-reason-steps h3 { font-size: 14px; }
  .p-reason-steps p { font-size: 11px; }
  .p-reason .p-process-note { margin-top: 10px; font-size: 13px; }
  .p-reason .p-trust-grid { gap: 8px; margin-top: 18px; }
  .p-reason .p-trust-grid > div { padding: 14px; }
  .p-reason .p-trust-grid dt { font-size: 15px; }
  .p-reason .p-trust-grid dd { font-size: 11px; }
  .p-news-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .p-side-box { padding: 18px 20px; }
  .p-news-body .p-article-meta { margin-bottom: 24px; padding-bottom: 20px; }
  .p-news-body .entry__content { font-size: 14px; line-height: 2; }
  .p-callout > p:not(.p-label) { flex: none; font-size: 13px; line-height: 1.9; }
  .p-spec-table + .p-callout { margin-top: 32px; }
  .p-partner { display: flex; flex-direction: column; gap: 28px; }
  .p-partner__main .p-title { font-size: 22px; }
  .p-partner__main > p:not(.p-label) { font-size: 14px; line-height: 2; }
  .p-partner__card { width: 100%; padding: 26px 22px; }
  .p-partner__card p:not(.p-label) { font-size: 13px; }
  .p-partner__button { height: 54px; padding: 0 10px 0 20px; font-size: 15px; }
  .p-not-found { padding: 96px 0; }
  .p-not-found__code { font-size: 80px; }
  .p-not-found__title { margin-top: 18px; font-size: 22px; }
  .p-not-found__text { font-size: 13px; line-height: 1.9; }
  .p-not-found__actions { flex-direction: column; align-items: center; gap: 14px; margin-top: 28px; }
  .p-nb-header { flex-wrap: nowrap; min-height: 60px; padding: 0 0 0 16px; gap: 10px; }
  .p-nb-header__logo { display: none; }
  .p-nb-header__brand { flex-direction: column; gap: 0; font-size: 16px; }
  .p-nb-header__brand small { font-size: 10px; }
  .p-nb-header__nav { width: auto; margin-left: auto; gap: 12px; }
  .p-nb-header__nav > a:not(.p-nb-header__cta) { display: none; }
  .p-nb-header__cta { min-height: 60px; padding: 0 16px; font-size: 13px; }
  .p-nb-hero { display: flex; flex-direction: column; }
  .p-nb-hero__inner { padding: 32px 20px 40px; }
  .p-nb-hero .breadcrumbs { margin-bottom: 20px; }
  .p-nb-hero h1 { margin-top: 16px; font-size: 28px; }
  .p-nb-hero__lead { margin-top: 16px; font-size: 14px; line-height: 1.9; }
  .p-nb-hero__note { font-size: 12px; }
  .p-nb-actions { flex-direction: column; align-items: stretch; gap: 10px; margin-top: 24px; }
  .p-nb-product .p-image { min-height: 0; height: 240px; }
  .p-nb-section { padding-block: 56px; }
  .p-nb-section--flow { padding-top: 0; }
  .p-nb-about { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
  .p-nb-about .p-title { font-size: 24px; }
  .p-nb-about__lead { margin-top: 16px; font-size: 14px; line-height: 2; }
  .p-nb-about__note { font-size: 13px; }
  .p-nb-facts > div { grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 16px 4px; }
  .p-nb-facts dt { font-size: 18px; }
  .p-nb-facts dd { font-size: 13px; }
  .p-nb .p-section-heading + .p-nb-note { margin-top: -12px; }
  .p-nb-note { margin-bottom: 20px; font-size: 12px; }
  .p-nb-uses { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .p-nb-use-card { padding: 20px; gap: 8px; }
  .p-nb-use-card .p-placeholder { height: 140px; }
  .p-nb-use-card__num { font-size: 24px; }
  .p-nb-use-card h3 { font-size: 17px; }
  .p-nb-use-card p { font-size: 13px; }
  .p-nb-order { flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 32px; padding: 24px 20px; }
  .p-nb-order h3 { font-size: 18px; }
  .p-nb-order p { font-size: 13px; }
  .p-nb-works__title { margin: 40px 0 16px; font-size: 18px; }
  .p-nb-flow { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .p-nb-flow li { padding: 18px 20px; gap: 6px; }
  .p-nb-flow h3 { font-size: 16px; }
  .p-nb-contact { padding-block: 56px; }
  .p-nb-contact__inner { display: flex; flex-direction: column; align-items: stretch; gap: 24px; }
  .p-nb-contact h2 { margin-top: 16px; font-size: 22px; }
  .p-nb-contact__text > p:last-child { font-size: 13px; line-height: 1.9; }
  .p-nb-contact__action { height: 72px; padding: 0 18px; }
  .p-nb-contact__action--mail { font-size: 15px; }
  .p-nb-contact__tel .en { font-size: 22px; }
  .p-nb-footer { padding-block: 32px calc(96px + env(safe-area-inset-bottom, 0px)); }
  .p-nb-footer .p-container.p-nb-footer__inner { flex-direction: column; align-items: flex-start; }
  .p-nb-footer__info p { font-size: 14px; }
  .p-nb-footer nav { gap: 10px 20px; font-size: 12px; }
  .p-nb .p-section-heading__title { font-size: 22px; }
  .p-contact-layout { display: flex; flex-direction: column-reverse; gap: 40px; }
  .p-contact-intro { position: static; width: 100%; padding: 24px 22px; }
  .p-contact-intro h2 { font-size: 18px; }
  .p-contact-intro p { font-size: 13px; }
  .p-contact-intro__tel { font-size: 26px; }
  .p-mailform { width: 100%; }
  .p-mailform .form__inner { margin-top: 32px; }
  .p-form-progress li { padding: 12px 6px; font-size: 13px; }
  .p-form-progress li::before { font-size: 10px; letter-spacing: 0.1em; }
  .p-form-section + .p-form-section { margin-top: 36px; }
  .p-form-step { padding-bottom: 12px; font-size: 18px; margin-bottom: 0; }
  .p-form-step__num { width: 28px; height: 28px; font-size: 13px; }
  .p-mailform .form__listItem { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 0; }
  .p-mailform .form__listLabel { padding-top: 0; font-size: 14px; }
  .p-mailform .form__input { height: 52px; font-size: 16px; }
  .p-mailform .form__textarea { font-size: 16px; }
  .p-form-options { gap: 8px; }
  .p-form-options > div { width: 100%; }
  .p-mailform .form__radioLabel { width: 100%; padding: 12px 14px; font-size: 13px; }
  .p-mailform .form__fileBox { padding: 14px; }
}
