/* 下層ページの本文に共通のデザイン。ヒーローは適用範囲に含めない。 */
.subpage-gallery {
  --gallery-ink: #13171f;
  --gallery-blue: #2364f5;
  --gallery-paper: #fafaf8;
  --gallery-rule: #d3d5d2;
  --gallery-muted: #62676e;
  --gallery-gutter: clamp(24px, 5.5vw, 88px);
  color: var(--gallery-ink);
  background: var(--gallery-paper);
  font-family: var(--font-inter), var(--font-noto-sans-jp), sans-serif;
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.9;
}
.subpage-gallery .container { width: min(calc(100% - var(--gallery-gutter) * 2), 1280px); max-width: none; }
.subpage-gallery :is(.section, .detail-section, .mediakit-section) { padding: clamp(72px, 7.2vw, 112px) 0; background: transparent; border: 0; }
.subpage-gallery > :is(section, .section) + section { border-top: 1px solid var(--gallery-rule); }
.subpage-gallery :is(h2, h3, h4) { color: inherit; font-family: inherit; font-weight: 500; letter-spacing: -.045em; line-height: 1.4; text-wrap: balance; }
.subpage-gallery h2 { font-size: clamp(34px, 4.2vw, 60px); }
.subpage-gallery h3 { font-size: clamp(23px, 2.2vw, 30px); }
.subpage-gallery h4 { font-size: 1.25rem; font-weight: 600; }
.subpage-gallery p { color: var(--gallery-muted); font-size: 1.0625rem; font-weight: 400; line-height: 1.9; }
.subpage-gallery .no-wrap-desktop { white-space: normal; }
.subpage-gallery strong { font-weight: 600; }
.subpage-gallery .mediakit-type-label { color: var(--gallery-blue); font-size: .875rem; font-weight: 500; letter-spacing: .07em; line-height: 1.6; }
.subpage-gallery .subpage-text-char { display: inline-block; }
.subpage-gallery :is(a, button, summary):focus-visible { outline: 3px solid var(--gallery-blue); outline-offset: 5px; }
.subpage-gallery :is(.button, .text-link) { font-size: 1rem; font-weight: 500; }
.subpage-gallery .button { min-height: 58px; padding: 16px 24px; border: 1px solid var(--gallery-ink); border-radius: 0; box-shadow: none; background: var(--gallery-ink); color: #fff; line-height: 1.6; }
.subpage-gallery .button:hover { background: var(--gallery-blue); border-color: var(--gallery-blue); }
.subpage-gallery .button-outline { background: transparent; color: var(--gallery-ink); }
.subpage-gallery .button-outline:hover { color: #fff; }
.subpage-gallery .text-link { display: inline-flex; padding: 10px 0; color: var(--gallery-ink); border-bottom: 1px solid currentColor; }
.subpage-gallery .text-link:hover { color: var(--gallery-blue); }

/* 会社紹介：概要と情報、挨拶と写真を大きな余白で並べる。 */
.subpage-gallery .company-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 72px; }
.subpage-gallery .company-grid > div:first-child { min-width: 0; max-width: none; }
.subpage-gallery .company h2 { margin: 0 0 32px; }
.subpage-gallery .company-copy { font-size: clamp(24px, 2.3vw, 33px) !important; font-weight: 500; line-height: 1.7 !important; letter-spacing: -.04em; color: var(--gallery-ink); margin: 0 0 28px !important; }
.subpage-gallery .company-table { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; border-radius: 0; }
.subpage-gallery .company-table > div { padding: 24px 0; border-top: 1px solid var(--gallery-rule); border-bottom: 0; grid-template-columns: 112px minmax(0, 1fr); gap: 20px; }
.subpage-gallery .company-table :is(dt, dd) { font-size: 1rem; font-weight: 400; line-height: 1.9; }
.subpage-gallery .company-table dt { color: var(--gallery-muted); }
.subpage-gallery .company-table a { text-underline-offset: 5px; }
.subpage-gallery .company-map { border: 0; border-radius: 0; }
.subpage-about .company-access { grid-column: 1 / -1; }
.subpage-about .company-access .gallery-section-label { margin-bottom: 24px; }
.subpage-about .company-access .company-map { width: 100%; height: clamp(280px, 32vw, 420px); min-height: 0; margin: 0; }
.subpage-about .company-access .map-embed { width: 100%; height: 100%; min-height: 0; }
.subpage-gallery .partners h2 { margin-bottom: 44px; }
.subpage-gallery .partner-grid { gap: 24px; }
.subpage-gallery .partner-card { border: 0; border-radius: 0; box-shadow: none; }
.subpage-gallery .partner-name { font-size: .9375rem; font-weight: 500; }
/* 写真幅は従来の列幅（42.5%）× 1/√3 を保ち、本文を同じ右列に揃える。 */
.subpage-gallery .company-message { display: grid; grid-template-columns: min(242.487px, calc((100% - 72px) * .425 * .57735)) minmax(0, 1fr); align-items: start; gap: 56px; padding: 0; margin: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.subpage-gallery .company-message-aside { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.subpage-gallery .company-message .company-message-aside .gallery-section-label { margin: 0; }
.subpage-gallery .company-message-content { min-width: 0; }
.subpage-gallery .company-message-body { max-width: none; }
.subpage-gallery .company-message h3 { font-size: clamp(34px, 4.2vw, 60px); margin: 0; }
.subpage-gallery .company-message p:not(.section-en) { margin: 0 0 18px; font-family: inherit; font-size: 1.0625rem; font-weight: 400; line-height: 1.85; }
.subpage-gallery .company-message p.message-lead { color: var(--gallery-ink); font-size: clamp(22px, 2.1vw, 28px); font-weight: 500; letter-spacing: -.035em; line-height: 1.6; margin: 0 0 24px; }
.subpage-gallery .company-message p:last-child { margin-bottom: 0; }
.subpage-gallery .company-message-profile { display: block; max-width: none; margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .company-message-photo { width: 100%; max-width: 242.487px; border-radius: 0; overflow: hidden; }
.subpage-gallery .company-message-photo img { width: 100%; height: auto; display: block; }
.subpage-gallery .company-message-profile-text h4 { font-size: 1.5rem; font-weight: 500; margin: 0 0 18px; }

/* サービス詳細：製品画像、工程、料金、FAQを同じ書式に揃える。 */
.subpage-gallery .detail-section-head { max-width: 1000px; margin: 0 0 52px; }
.subpage-gallery .detail-section h2 { font-size: clamp(34px, 4.2vw, 60px); font-weight: 500; line-height: 1.4; margin-top: 0; }
.subpage-gallery .detail-section-head h2.no-break { white-space: normal; }
.subpage-gallery :is(.detail-split, .detail-usecases, .fde-target-hero) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 64px; align-items: start; }
.subpage-gallery :is(.detail-split, .detail-usecases, .fde-target-hero) > * { grid-column: auto; min-width: 0; }
.subpage-gallery .detail-pricing { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); }
.subpage-gallery .detail-body p { font-size: 1.0625rem; line-height: 1.95; }
.subpage-gallery :is(.detail-card-grid, .detail-image-grid) { gap: 36px; }
.subpage-gallery :is(.detail-card, .detail-image-card, .fde-target-card, .radio-feature, .radio-step) { min-width: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.subpage-gallery .detail-card { padding: 28px 0 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .detail-card > span { color: var(--gallery-blue); font-size: 1rem; font-weight: 500; }
.subpage-gallery :is(.detail-card, .detail-image-card) h3 { margin: 22px 0 18px; font-size: clamp(23px, 2.1vw, 29px); font-weight: 500; }
.subpage-gallery :is(.detail-card, .detail-image-card) p { font-size: 1.0625rem; line-height: 1.9; }
.subpage-gallery .detail-image-card { padding: 0; overflow: visible; }
.subpage-gallery .detail-image-card :is(h3, p) { padding: 0; background: transparent; }
.subpage-gallery .detail-image-card p { margin: 0 0 20px; }
.subpage-gallery .detail-image-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; border: 0; border-radius: 0; }
.subpage-gallery .rakuda-lineup-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; gap: 64px; padding: 48px 0; margin: 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .rakuda-lineup-card + .rakuda-lineup-card { margin-top: 0; }
.subpage-gallery .rakuda-lineup-visual { min-width: 0; height: auto; padding: 0; overflow: hidden; background: #fff; }
.subpage-gallery .rakuda-lineup-visual img { box-shadow: none; }
.subpage-gallery .rakuda-lineup-card .rakuda-lineup-body { display: block; padding: 0; }
.subpage-gallery .rakuda-lineup-card .rakuda-lineup-body :is(h3, p) { margin: 0 0 22px; }
.subpage-gallery .rakuda-lineup-body h3 { margin-top: 0; font-size: clamp(25px, 2.4vw, 34px); }
.subpage-gallery .rakuda-lineup-body p { margin-bottom: 20px; }
.subpage-gallery .fde-target-hero { margin-bottom: 52px; }
.subpage-gallery :is(.fde-target-hero-image, .fde-section-image, .fde-flow-hero-image) { border-radius: 0; box-shadow: none; }
.subpage-gallery .fde-target-card { padding: 28px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .fde-target-card .target-label { color: var(--gallery-blue); font-size: 2.75rem; font-weight: 500; }
.subpage-gallery .fde-target-card h3 { font-size: 1.5rem; font-weight: 500; }
.subpage-gallery .fde-target-card p { font-size: 1.0625rem; }
.subpage-gallery .fde-origins { background: var(--gallery-ink); color: #fff; }
.subpage-gallery .fde-origins :is(p, .detail-body p) { color: #c2c7d0; }
.subpage-gallery .fde-origins .detail-body strong { color: #fff; }
.subpage-gallery .fde-origin-item { border-radius: 0; background: #ffffff0a; border: 1px solid #ffffff25; }
.subpage-gallery .fde-origin-item strong { font-weight: 500; }
.subpage-gallery :is(.fde-flow-step, .radio-step) { padding: 24px 18px; border-left: 1px solid var(--gallery-rule); }
.subpage-gallery :is(.fde-flow-step .step-num, .radio-step-num) { color: var(--gallery-blue); background: transparent; font-weight: 500; }
.subpage-gallery :is(.fde-flow-step h3, .radio-step h3) { font-size: 1.25rem; font-weight: 600; }
.subpage-gallery :is(.fde-flow-step p, .radio-step p, .radio-feature p) { font-size: 1rem; line-height: 1.85; }
.subpage-gallery .radio-feature { padding: 28px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .radio-feature h3 { font-weight: 500; }
.subpage-gallery :is(.radio-chart, .fde-position-diagram) { padding: 32px; background: #fff; border: 0; border-radius: 0; box-shadow: none; }
.subpage-gallery :is(.detail-table-wrap, .fde-comparison-wrap) { max-width: 100%; overflow-x: auto; border-radius: 0; border: 1px solid var(--gallery-rule); }
.subpage-gallery :is(.detail-table, .fde-comparison-table) { background: #fff; font-size: 1rem; }
.subpage-gallery .detail-pricing .detail-table { min-width: 0; width: 100%; table-layout: fixed; border: 0; border-radius: 0; box-shadow: none; }
.subpage-gallery .detail-pricing .detail-table :is(th, td) { white-space: normal; vertical-align: top; overflow-wrap: anywhere; }
.subpage-gallery .detail-table th:first-child { width: 52%; }
.ai-radio-page .subpage-gallery .detail-table th:first-child { width: 42%; }
.subpage-gallery :is(.detail-table, .fde-comparison-table) th { background: #e9ebe7; color: var(--gallery-ink); font-weight: 500; }
.subpage-gallery :is(.detail-table, .fde-comparison-table) td { font-weight: 400; }
.subpage-gallery .fde-comparison-table th.col-hl { background: var(--gallery-blue); color: #fff; }
.subpage-gallery .fde-comparison-table td.col-hl { background: #eaf0ff; color: #1746ab; }
.subpage-gallery .testimonial-list article { padding: 30px 0; background: transparent; border: 0; border-top: 1px solid var(--gallery-rule); border-radius: 0; box-shadow: none; }
.subpage-gallery .testimonial-list h3 { font-weight: 500; }
.subpage-gallery .faq-list details { background: transparent; border: 0; border-top: 1px solid var(--gallery-rule); border-radius: 0; padding: 26px 0; }
.subpage-gallery .faq-list summary { font-size: 1.125rem; font-weight: 500; }
.subpage-gallery .detail-cta { padding: 80px 0; background: var(--gallery-blue); color: #fff; }
.subpage-gallery .detail-cta h2 { white-space: normal; }
.subpage-gallery .detail-cta p { color: #e6edff; }
.subpage-gallery .detail-cta .button { border-color: #fff; background: #fff; color: var(--gallery-ink); }
.subpage-gallery .detail-cta .button-outline { background: transparent; color: #fff; }

/* 一覧：画像と文章を見せる開かれたカード。 */
.subpage-gallery .blog-list-grid { gap: 52px 32px; }
.subpage-gallery :is(.blog-list-card, .blog-category-card, .glossary-card) { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.subpage-gallery :is(.blog-list-card, .blog-category-card, .glossary-card):hover { transform: none; box-shadow: none; }
.subpage-gallery .blog-list-thumb-wrap { border-radius: 0; overflow: hidden; }
.subpage-gallery .blog-thumb-image { border-radius: 0; }
.subpage-gallery .blog-list-content { padding: 24px 0 0; }
.subpage-gallery .blog-list-content h2 { font-size: clamp(22px, 2vw, 28px); font-weight: 500; line-height: 1.55; }
.subpage-gallery .blog-list-content p { font-size: 1rem; }
.subpage-gallery :is(.blog-list-meta, .blog-list-meta time) { color: var(--gallery-muted); font-size: .875rem; font-weight: 400; }
.subpage-gallery .blog-list-category { border-radius: 0; font-weight: 500; background: var(--gallery-blue); color: #fff; }
.subpage-gallery .blog-category-grid { gap: 0 48px; }
.subpage-gallery .blog-category-card { padding: 32px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .blog-category-card :is(h2, h3) { font-size: clamp(24px, 2.4vw, 32px); font-weight: 500; }
.subpage-gallery .blog-category-card p { font-size: 1.0625rem; }
.subpage-gallery .blog-category-overview-grid { gap: 72px; }
.subpage-gallery .blog-category-overview-grid > div { padding: 28px 0; background: transparent; border: 0; border-top: 1px solid var(--gallery-rule); border-radius: 0; }
.subpage-gallery .blog-category-overview h2 { font-size: clamp(28px, 3vw, 42px); }
.subpage-gallery .blog-related-head { margin-bottom: 36px; }
.subpage-gallery .blog-related-head h2 { font-size: clamp(28px, 3vw, 42px); font-weight: 500; }
.subpage-gallery :is(.blog-pagination a, .blog-pagination span, .glossary-pagination a, .glossary-pagination span) { border-radius: 0; font-weight: 500; }
.subpage-gallery .blog-pagination-ellipsis { display: none; }
.subpage-gallery .blog-pagination:not(.is-compact) .blog-pagination-pages { width: max-content; flex-wrap: nowrap; flex-shrink: 0; }
.subpage-gallery .blog-pagination-control { flex-shrink: 0; }
.subpage-gallery .blog-pagination.is-compact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.subpage-gallery .blog-pagination.is-compact .blog-pagination-pages { grid-column: 1 / -1; grid-row: 1; flex-wrap: nowrap; gap: 4px; }
.subpage-gallery .blog-pagination.is-compact .blog-pagination-page { min-width: 36px; padding: 0 8px; }
.subpage-gallery .blog-pagination.is-compact .blog-pagination-page.is-compact-hidden { display: none; }
.subpage-gallery .blog-pagination.is-compact .blog-pagination-ellipsis { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 40px; color: var(--gallery-muted); }
.subpage-gallery .blog-pagination.is-compact .blog-pagination-control { grid-row: 2; }
.subpage-gallery .blog-post-cta { padding: 42px; border: 0; border-radius: 0; box-shadow: none; background: var(--gallery-ink); color: #fff; }
.subpage-gallery .blog-post-cta :is(h2, h3) { color: #fff; font-size: clamp(24px, 2.5vw, 34px); font-weight: 500; }
.subpage-gallery .blog-post-cta p { color: #c2c7d0; }
.subpage-gallery .blog-post-cta .button { background: #fff; color: var(--gallery-ink); border-color: #fff; }

/* 記事と用語の本文は、読みやすい行長と静かな見出しにする。 */
.subpage-gallery .blog-detail-shell { grid-template-columns: minmax(0, 800px) minmax(220px, 280px); gap: 72px; justify-content: center; }
.subpage-gallery .blog-detail-main { min-width: 0; }
.subpage-gallery .blog-detail-body { background: transparent; font-size: 1.0625rem; font-weight: 400; line-height: 1.95; }
.subpage-gallery .blog-detail-body :is(p, li) { color: var(--gallery-ink); font-size: 1.0625rem; font-weight: 400; line-height: 1.95; }
.subpage-gallery .blog-detail-body h2 { font-size: clamp(26px, 2.5vw, 34px); font-weight: 500; background: none; border-left: 3px solid var(--gallery-blue); border-radius: 0; padding: 0 0 0 18px; margin: 60px 0 26px; line-height: 1.5; }
.subpage-gallery .blog-detail-body h3 { font-size: clamp(22px, 2vw, 28px); font-weight: 500; margin-top: 36px; }
.subpage-gallery :is(.blog-author-box, .blog-audio-player) { background: #e9ebe7; border: 0; border-radius: 0; box-shadow: none; }
.subpage-gallery .blog-author-box p { font-size: .9375rem; }
.subpage-gallery :is(.blog-detail-cover, .blog-slide-image) { border-radius: 0; }
.subpage-gallery .blog-toc { background: transparent; border: 0; border-top: 2px solid var(--gallery-blue); border-radius: 0; padding: 24px 0; }
.subpage-gallery .blog-toc h2 { font-size: 1.25rem; font-weight: 500; }
.subpage-gallery .blog-toc :is(a, li) { font-size: .9375rem; font-weight: 400; line-height: 1.8; }
.subpage-gallery .blog-section-figure img { border: 0; border-radius: 0; }
.subpage-gallery .section-number { font-weight: 500; color: var(--gallery-blue); }
.subpage-gallery :is(.blog-faq-section, .blog-glossary-links) > h2 { font-size: clamp(26px, 2.5vw, 34px); }
.subpage-gallery .blog-faq-item { padding: 24px 0; background: transparent; border: 0; border-top: 1px solid var(--gallery-rule); border-radius: 0; }
.subpage-gallery .blog-faq-item h3 { font-size: 1.25rem; }
.subpage-gallery .blog-glossary-link { border-radius: 0; background: #e9ebe7; font-size: .9375rem; font-weight: 400; }
.subpage-gallery .blog-related-card a { padding: 24px 0; background: transparent; border: 0; border-top: 1px solid var(--gallery-rule); border-radius: 0; box-shadow: none; }
.subpage-gallery .blog-related-card h3 { font-size: 1.5rem; }
.subpage-gallery .blog-related-card time { font-size: .875rem; font-weight: 400; }
.subpage-gallery .glossary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; }
.subpage-gallery .glossary-card { padding: 28px 0; border-top: 1px solid var(--gallery-rule); animation: none; }
.subpage-gallery .glossary-card-ja { font-size: 1.375rem; font-weight: 500; line-height: 1.5; }
.subpage-gallery .glossary-card-header { margin-bottom: 12px; }
.subpage-gallery .glossary-tag { flex-shrink: 0; border-radius: 0; color: #1746ab; background: #eaf0ff; font-size: .75rem; font-weight: 500; }
.subpage-gallery .glossary-card p { font-size: 1rem; }
.subpage-gallery .glossary-card .glossary-card-en { font-size: .875rem; }
.subpage-gallery .glossary-result-meta { font-weight: 400; }
.subpage-gallery :is(.glossary-card-category, .glossary-related-term) { border-radius: 0; font-weight: 400; }
.subpage-gallery .glossary-category-nav { margin-bottom: 40px; }
.subpage-gallery .glossary-category-nav a { border-radius: 0; font-weight: 500; }
.subpage-gallery .glossary-pagination { flex-wrap: wrap; }
.subpage-gallery .glossary-pagination-pages { flex-wrap: wrap; justify-content: center; }
.subpage-gallery .glossary-pagination-page.is-current { background: var(--gallery-blue); border-color: var(--gallery-blue); }
.subpage-gallery .glossary-index-jump { gap: 10px; margin-bottom: 56px; }
.subpage-gallery .glossary-index-jump a { min-width: 48px; min-height: 48px; border-radius: 0; background: #e9ebe7; font-weight: 500; }
.subpage-gallery .glossary-index-section-title { font-size: clamp(30px, 3vw, 44px); margin: 60px 0 32px; font-weight: 500; }
.subpage-gallery .glossary-index-group { padding: 28px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .glossary-index-heading { color: var(--gallery-blue); font-size: 1.75rem; font-weight: 500; margin: 0 0 24px; }
.subpage-gallery .glossary-index-links a { padding: 10px 0; font-size: 1rem; font-weight: 400; }
.subpage-gallery .glossary-detail-container { max-width: 920px; }
.subpage-gallery .glossary-detail-card { padding: 36px 0; margin: 0; background: transparent; border: 0; border-top: 1px solid var(--gallery-rule); border-radius: 0; box-shadow: none; }
.subpage-gallery .glossary-detail-card h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 500; }
.subpage-gallery .glossary-detail-card :is(p, li) { font-size: 1.0625rem; font-weight: 400; line-height: 1.95; }
.subpage-gallery .glossary-article-info h3 { font-size: 1.125rem; font-weight: 500; letter-spacing: -.02em; }
.subpage-gallery .glossary-consult-card { margin-top: 36px; padding: 36px; background: var(--gallery-ink); color: #fff; }
.subpage-gallery .glossary-consult-card p { color: #c2c7d0; }
.subpage-gallery .glossary-consult-card a { color: #fff; }

/* ブランド素材、フォーム、方針文書。機能や記載内容は保持する。 */
.subpage-gallery .mediakit-section-title { font-size: clamp(34px, 4.2vw, 60px); font-weight: 500; }
.subpage-gallery .mediakit-section-desc { max-width: 800px; margin-bottom: 44px; }
.subpage-gallery :is(.mediakit-logo-grid, .mediakit-type-grid, .mediakit-guide-grid) { gap: 40px; }
.subpage-gallery :is(.mediakit-logo-card, .mediakit-color-card, .mediakit-type-card, .mediakit-guide-col) { border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.subpage-gallery .mediakit-logo-preview { border-radius: 0; min-height: 260px; }
.subpage-gallery .mediakit-logo-info { padding: 24px 0; border-bottom: 1px solid var(--gallery-rule); }
.subpage-gallery .mediakit-logo-info h3 { font-size: 1.5rem; font-weight: 500; }
.subpage-gallery .mediakit-download-btn { border-radius: 0; font-weight: 500; }
.subpage-gallery .mediakit-color-swatch { border-radius: 0; }
.subpage-gallery .mediakit-type-card { padding: 28px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .mediakit-type-sample { color: var(--gallery-ink); font-size: clamp(28px, 3vw, 42px); line-height: 1.5; font-weight: 500; }
.subpage-gallery .mediakit-type-meta { font-size: .875rem; }
.subpage-gallery .mediakit-guide-col { padding: 28px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .mediakit-contact { padding: 42px; border: 0; border-radius: 0; background: var(--gallery-ink); color: #fff; }
.subpage-gallery .mediakit-contact p { color: #c2c7d0; }
.subpage-gallery .mediakit-contact .button { background: #fff; color: var(--gallery-ink); border-color: #fff; }
.subpage-gallery .contact-page-container { padding-top: 80px; padding-bottom: 96px; }
.subpage-gallery .contact-form { max-width: 820px; }
.subpage-gallery .contact-form-grid { gap: 32px; }
.subpage-gallery .contact-field { margin-bottom: 0; }
.subpage-gallery .contact-field label { margin-bottom: 12px; color: var(--gallery-ink); font-size: 1rem; font-weight: 500; }
.subpage-gallery .contact-field :is(input, select, textarea) { border: 1px solid #aeb2b5; border-radius: 4px; background: #fff; color: var(--gallery-ink); font: inherit; font-size: 1rem; padding: 15px 16px; }
.subpage-gallery .contact-field :is(input, select, textarea):focus { outline: 2px solid var(--gallery-blue); outline-offset: -1px; border-color: var(--gallery-blue); box-shadow: none; }
.subpage-gallery .contact-field :is(input, select, textarea).is-invalid { border-color: #c62828; }
.subpage-gallery.subpage-policy { max-width: none; margin: 40px auto 0; background: transparent; }
.subpage-gallery .privacy-section { padding: 36px 0; border-top: 1px solid var(--gallery-rule); }
.subpage-gallery .privacy-section h2 { margin: 0 0 24px; font-size: clamp(23px, 2.5vw, 30px); font-weight: 500; }
.subpage-gallery .privacy-section :is(p, li) { color: var(--gallery-ink); font-size: 1rem; font-weight: 400; line-height: 1.95; }
.subpage-gallery .privacy-section table { display: block; max-width: 100%; overflow-x: auto; font-size: .9375rem; }
.subpage-gallery .privacy-section th { background: #e9ebe7; color: var(--gallery-ink); font-weight: 500; }
.subpage-gallery .privacy-section .policy-flow { border-radius: 0; box-shadow: none; background: #e9ebe7; }

/* 下層ページのフッターもトップと同じ文字の強弱・幅で整える。 */
body:has(.subpage-gallery, .subpage-shell) .site-footer { padding: 52px 0 42px; color: #fff; background: #05070a; border-top: 1px solid #ffffff1f; }
body:has(.subpage-gallery, .subpage-shell) .footer-grid { width: min(calc(100% - clamp(24px, 5.5vw, 88px) * 2), 1280px); max-width: none; grid-template-columns: minmax(260px, 1fr) minmax(0, 3fr); gap: 40px; }
body:has(.subpage-gallery, .subpage-shell) .footer-grid > :first-child, body:has(.subpage-gallery, .subpage-shell) .footer-grid > :last-child { grid-column: auto; }
body:has(.subpage-gallery, .subpage-shell) .footer-brand { max-width: none; }
body:has(.subpage-gallery, .subpage-shell) .site-footer .logo { width: 164px; max-width: 100%; }
body:has(.subpage-gallery, .subpage-shell) .footer-build-no { color: #000 !important; font-size: .875rem !important; }
body:has(.subpage-gallery, .subpage-shell) .footer-company { max-width: none; margin-top: 4px; font-size: .875rem; line-height: 1.8; color: #c7c9cd; font-weight: 400; }
body:has(.subpage-gallery, .subpage-shell) .footer-brand small { display: block; margin-top: 8px; color: #a2a6ad; font-size: .875rem; font-weight: 400; }
body:has(.subpage-gallery, .subpage-shell) .footer-nav { display: grid; grid-template-columns: repeat(4, max-content); justify-content: space-between; gap: 24px; }
body:has(.subpage-gallery, .subpage-shell) .footer-nav h3 { color: #fff; font-size: 1rem; font-weight: 600; margin-bottom: 18px; }
body:has(.subpage-gallery, .subpage-shell) .footer-nav a { color: #c7c9cd; font-size: 1rem; line-height: 1.8; font-weight: 400; white-space: nowrap; }
body:has(.subpage-gallery, .subpage-shell) .footer-nav a:hover { color: #fff; }

@media (max-width: 1100px) {
  .subpage-gallery :is(.company-grid, .detail-split, .detail-usecases, .fde-target-hero, .rakuda-lineup-card, .blog-category-overview-grid) { gap: 40px; }
  .subpage-gallery .company-message { grid-template-columns: min(242.487px, calc((100% - 40px) * .425 * .57735)) minmax(0, 1fr); gap: 32px; }
  .subpage-gallery .blog-detail-shell { grid-template-columns: minmax(0, 1fr) 230px; gap: 36px; }
  .subpage-gallery .detail-pricing { grid-template-columns: 1fr; }
  .subpage-gallery .glossary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body:has(.subpage-gallery, .subpage-shell) .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  body:has(.subpage-gallery, .subpage-shell) .footer-grid > :first-child, body:has(.subpage-gallery, .subpage-shell) .footer-grid > :last-child { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .subpage-gallery :is(.section, .detail-section, .mediakit-section) { padding: 56px 0; }
  .subpage-gallery :is(h2, .company-message h3, .detail-section h2, .mediakit-section-title) { font-size: clamp(29px, 8.2vw, 40px); }
  .subpage-gallery :is(.company-grid, .company-message, .detail-split, .detail-usecases, .fde-target-hero, .rakuda-lineup-card, .blog-category-overview-grid, .blog-detail-shell) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .subpage-gallery .company-table > div { grid-template-columns: 82px minmax(0, 1fr); gap: 16px; padding: 20px 0; }
  .subpage-gallery .company-table :is(dt, dd) { font-size: .9375rem; }
  .subpage-gallery .company-message-profile { margin-top: 24px; padding-top: 24px; }
  .subpage-gallery .company-message-photo { width: 57.735%; max-width: 100%; margin-inline: auto; }
  .subpage-gallery .detail-section-head { margin-bottom: 32px; }
  .subpage-gallery :is(.detail-card-grid, .detail-image-grid, .blog-list-grid) { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .subpage-gallery .rakuda-lineup-card { padding: 32px 0; }
  .subpage-gallery .rakuda-lineup-body h3 { font-size: 25px; }
  .subpage-gallery .fde-target-grid { grid-template-columns: 1fr; }
  .subpage-gallery .fde-flow-steps { grid-template-columns: 1fr; }
  .subpage-gallery .fde-flow-step { border-left: 0; border-top: 1px solid var(--gallery-rule); padding: 24px 0; }
  .subpage-gallery .fde-flow-step:not(:last-child)::after { display: none; }
  .subpage-gallery :is(.radio-chart, .fde-position-diagram) { padding: 16px; }
  .subpage-gallery .detail-cta { padding: 56px 0; }
  .subpage-gallery .detail-table :is(th, td) { padding: 16px 12px; font-size: .9375rem; }
  .subpage-gallery .button { width: 100%; padding: 16px 18px; }
  .subpage-gallery .blog-category-grid { gap: 0; }
  .subpage-gallery .blog-list-content { padding-top: 20px; }
  .subpage-gallery .blog-list-content h2 { font-size: 24px; }
  .subpage-gallery :is(.blog-post-cta, .glossary-consult-card, .mediakit-contact) { padding: 28px 24px; }
  .subpage-gallery .blog-detail-body h2 { margin-top: 44px; font-size: 26px; padding-left: 14px; }
  .subpage-gallery .blog-toc h2 { font-size: 1.25rem; }
  .subpage-gallery .glossary-grid { grid-template-columns: minmax(0, 1fr); }
  .subpage-gallery .glossary-detail-card { padding-top: 28px; padding-bottom: 28px; }
  .subpage-gallery .glossary-detail-card h2 { font-size: 26px; }
  .subpage-gallery .glossary-index-heading { font-size: 1.75rem; }
  .subpage-gallery :is(.mediakit-logo-grid, .mediakit-type-grid, .mediakit-guide-grid) { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .subpage-gallery .mediakit-logo-preview { min-height: 220px; }
  .subpage-gallery .mediakit-color-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .subpage-gallery .contact-page-container { padding-top: 48px; padding-bottom: 64px; }
  .subpage-gallery .contact-form-grid { gap: 0; }
  .subpage-gallery.subpage-policy { margin-top: 32px; }
  .subpage-gallery .privacy-section { padding: 28px 0; }
  .subpage-gallery .privacy-section h2 { font-size: 23px; }
  body:has(.subpage-gallery, .subpage-shell) .site-footer { padding: 50px 0 32px; }
  body:has(.subpage-gallery, .subpage-shell) .footer-grid { display: flex; flex-direction: column; gap: 36px; }
  body:has(.subpage-gallery, .subpage-shell) .footer-nav { grid-template-columns: 1fr 1fr; gap: 30px 24px; }
  body:has(.subpage-gallery, .subpage-shell) .footer-nav h3 { margin-bottom: 13px; }
}
@media (max-width: 479px) {
  body:has(.subpage-gallery, .subpage-shell) .footer-nav { grid-template-columns: 1fr; }
}
