:root {
  --bg: #ffffff;
  --bg-alt: #f7f7f5;
  --surface: #ffffff;
  --surface-2: #f0f0ed;
  --line: #dfdfda;
  --text: #202020;
  --fg: #202020;
  --sub: #60605b;
  --brand: #ffd54a;
  --brand-deep: #edbd29;
  --on-brand: #201a05;
  --radius: 16px;
  --wrap: 1200px;
  --header-h: 80px;
  --space-section: clamp(56px, 7vw, 104px);
  --space-card-y: 30px;
  --space-card-x: 26px;
  color-scheme: light;
}
header { background: rgba(255,255,255,.96); border-bottom-color: #ecece8; }
nav a { font-size: 13px; padding-inline: 10px; color: #42423f; }
nav a.nav-cta { border-radius: 999px; padding-inline: 20px; }
#hero { background: #fff; padding-top: 40px; }
.player { box-shadow: 0 18px 46px rgba(25,25,20,.12); border-color: #252525; border-radius: 18px; }
.player-screen { --text: #f5f5f5; color: #f5f5f5; }
.player-copy h1 { font-size: clamp(28px, 4.4vw, 54px); letter-spacing: -.035em; }
.player-actions .btn-ghost { color: #fff; background: rgba(15,15,15,.4); border-color: #777; }
.watch-meta { margin-top: 28px; }
.watch-title { font-size: clamp(16px, 1.7vw, 21px); }
.channel-row { margin-top: 22px; gap: 16px; }
.chip { border: 1px solid #e8e8e3; background: #f5f5f2; }
#stats { background: #f8f8f5; }
.stat-en, .stat-num small { color: #5d625b; }
.stat-num { letter-spacing: -.045em; }
.stat-label { color: #53534e; }
.section-head { border-top-color: #d8d8d1; padding-top: 24px; }
.eyebrow { color: #171a18; font-size: 12px; letter-spacing: .16em; }
.eyebrow::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #ffd54a; }
h2 { letter-spacing: -.035em; font-weight: 800; }
.lead { color: #555550; }
.pillar, .sub-card, .voice-card, .flow-step, .contact-cta { box-shadow: 0 4px 14px rgba(30,30,20,.025); }
.pillar::before { height: 3px; background: #ffd54a; }
.pillar-ico { background: #fff6d1; }
.pillar-ico svg { fill: #171a18; }
.pipe-step { border-radius: 10px; padding-inline: 24px; }
.pipe-arrow { color: #171a18; }
.pipe-tip { border-color: #d9d9d2; box-shadow: 0 8px 26px rgba(20,20,10,.1); }
.ch-grid { gap: 32px 24px; }
.ch-thumb { border-radius: 14px; border-color: #ddd; }
.ch-role, .ch-avatar, .voice-name, .sub-card .sub-link, .profile-name small, .achv-item b, .company-table a, .value-head, .faq-q, .faq-mark { color: #171a18; }
.ch-thumb .badge b, .ch-thumb .badge-live { color: #ffd54a; }
.sub-card .sub-ico { color: #171a18; }
.profile-bio { color: #555550; }
.voice-quote::before { color: #edbd29; }
.contact-cta { background: #fff9e5; }
.field input, .field textarea { background: #fff; border-color: #d1d1c9; }
.btn-ghost { color: #282823; background: #fff; border-color: #c8c8c0; }
.btn-ghost:hover, .sns-btn:hover, .works-toggle:hover, .media-links a:hover { color: #171a18; border-color: #171a18; }
.ai-fab-btn { box-shadow: 0 5px 18px rgba(25,25,10,.13); }
.ai-fab-wrap { pointer-events: none; }
.ai-fab-btn, .ai-fab-wrap.open .ai-fab-menu { pointer-events: auto; }
@media(min-width:1024px) and (max-width:1180px) { nav a { padding-inline: 6px; font-size: 12px; } }
@media(max-width:720px) {
  :root { --header-h: 68px; --space-card-y: 24px; --space-card-x: 22px; }
  #hero { padding-top: 22px; }
  .player-copy { background: #fff; color: #202020; padding: 26px 20px; }
  .player-copy h1 { text-shadow: none; font-size: 29px; letter-spacing: -.04em; }
  .player-copy h1 em { color: #202020; text-decoration: underline; text-decoration-color: #ffd54a; text-decoration-thickness: 5px; text-underline-offset: 5px; }
  .player-sub { color: #555550; }
  .player-actions .btn-ghost { background: #fff; color: #202020; border-color: #bdbdb4; }
  .player { border-color: #deded6; box-shadow: 0 10px 26px rgba(25,25,15,.08); }
  .channel-row { gap: 10px; }
  .watch-meta { margin-top: 22px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-num { font-size: 38px; }
  .stat-en { font-size: 10px; letter-spacing: .1em; }
}

:root { --wrap:1360px; --header-h:88px; --space-section:clamp(72px,8vw,128px); --radius:8px; --text:#171a18; --sub:#5d625b; --bg-alt:#f5f5f1; }
.wrap { padding-inline:48px; }
.logo { font-size:21px; letter-spacing:-.04em; }
.logo-mark { width:38px; height:38px; border-radius:11px; }
nav a { font-size:12px; padding-inline:9px; }
nav a.nav-cta { border-radius:6px; padding-inline:21px; }
#hero { background:#fff; padding:76px 0 0; overflow:hidden; }
.player { border:0; background:none; box-shadow:none; overflow:visible; border-radius:0; }
.player-screen { display:grid; grid-template-columns:.94fr 1.06fr; gap:60px; align-items:center; aspect-ratio:auto; background:none; color:#171a18; --text:#171a18; }
.player-copy { grid-column:1; grid-row:1; max-width:none; padding:0 0 20px; color:#171a18; }
.hero-kicker { display:flex; align-items:center; gap:10px; font-size:12px; font-weight:800; letter-spacing:.1em; margin-bottom:27px; }
.hero-kicker::before { content:''; width:28px; height:3px; background:#171a18; }
.player-copy h1 { font-size:clamp(38px,4.5vw,65px); line-height:1.4; letter-spacing:-.065em; text-shadow:none; }
.player-copy h1 em { color:#171a18; background:linear-gradient(transparent 68%,#ffd54a 68%,#ffd54a 92%,transparent 92%); text-decoration:none; }
.player-sub { font-size:15px; color:#5d625b; margin-top:27px; line-height:2; max-width:31em; }
.player-actions { gap:12px; margin-top:31px; }
.btn { border-radius:6px; min-height:52px; font-size:14px; padding-inline:25px; }
.btn-primary { background:#171a18; color:#fff; }
.btn-primary:hover { background:#343a34; color:#fff; }
.player-actions .btn-primary { background:#ffd54a; color:#171a18; }
.btn-ghost,.player-actions .btn-ghost { color:#171a18; border-color:#a5aaa1; background:transparent; }
.player-media { grid-column:2; grid-row:1; position:relative; inset:auto; width:100%; aspect-ratio:4/3; background:#101210; border-radius:12px; box-shadow:20px 20px 0 #ffd54a; isolation:isolate; }
.player-video { border-radius:12px; object-fit:cover; opacity:1; }
.player-media::after { display:none; }
.player-chrome { border-radius:0 0 12px 12px; padding:62px 20px 15px; }
.watch-meta { margin-top:66px; padding:24px 0 31px; border-top:1px solid #dcdcd4; }
.watch-title { font-size:13px; font-weight:600; color:#5d625b; }
.channel-row { margin-top:16px; gap:20px; }
.channel-name { font-size:17px; }
.channel-sub { font-size:12px; margin-top:3px; }
.avatar { width:48px; height:48px; }
.channel-row .btn { min-height:42px; margin-left:auto; }
.watch-chips { margin-left:0; }
.chip { background:#f3f3ee; border-radius:6px; min-height:34px; font-size:12px; }
#stats { background:#171d19; border:0; padding:48px 0; }
.stats-grid { gap:32px; }
.stat { padding-right:24px; border-right:1px solid #424a42; }
.stat:last-child { border-right:0; }
.stat-en { color:#d0d0c8; font-size:10px; letter-spacing:.16em; margin-bottom:18px; }
.stat-num { color:#fff; font-size:clamp(42px,4.6vw,68px); letter-spacing:-.05em; }
.stat-num small { color:#ffd54a; }
.stat-label { color:#d0d0c8; border:0; padding-top:0; margin-top:16px; font-size:12px; }
.section-head { display:grid; grid-template-columns:180px 1fr; align-items:start; gap:12px 48px; border:0; padding-top:0; margin-bottom:48px; }
.section-head .eyebrow { padding-top:13px; font-size:11px; color:#454d42; }
h2 { font-size:clamp(30px,3.3vw,46px); line-height:1.45; letter-spacing:-.045em; margin:0; }
.section-head .lead { grid-column:2; margin:0; font-size:14px; line-height:2; max-width:52em; }
.pipeline { border-bottom:1px solid #dcdcd4; padding-bottom:30px; margin-bottom:36px; gap:14px; }
.pipe-step { border-radius:5px; border:0; background:#f5f5f1; padding-inline:26px; min-height:48px; font-size:14px; }
.pillar-grid { gap:0; }
.pillar { border:0; border-right:1px solid #dcdcd4; border-radius:0; padding:6px 36px 0; background:none; box-shadow:none; }
.pillar:first-child { padding-left:0; }
.pillar:last-child { border:0; padding-right:0; }
.pillar::before { display:none; }
.pillar-ico { width:54px; height:54px; background:#ffd54a; border-radius:50%; margin-bottom:26px; }
.pillar-ico svg { fill:#171a18; }
.pillar h3 { font-size:23px; margin-bottom:14px; letter-spacing:-.03em; }
.pillar p { line-height:2; }
#works { background:#f5f5f1; }
.ch-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 28px; }
.ch-thumb { border-radius:8px; border:0; }
.ch-card-link .ch-thumb { transition:transform .3s; }
.ch-card-link:hover .ch-thumb { transform:translateY(-5px); }
.ch-body { margin-top:18px; }
.ch-name { font-size:16px; min-height:0; }
.ch-role { color:#5d625b; font-weight:500; margin-top:7px; }
.works-toggle { min-height:48px; padding-inline:36px; border-radius:6px; background:#fff; }
.marquee { padding:32px 0; margin-block:60px; }
.voice-grid { gap:0; }
.voice-card { border:0; border-left:2px solid #d6d6ce; border-radius:0; background:transparent; padding:4px 26px; box-shadow:none; }
.voice-quote { font-size:14px; }
.voice-name { color:#171a18; }
.sub-grid { gap:0 40px; }
.sub-card { border:0; border-top:1px solid #d6d6ce; border-radius:0; padding:30px 0; background:none; box-shadow:none; }
.sub-card:hover { transform:none; border-color:#171a18; }
.sub-card h3 { font-size:20px; }
.flow-grid { gap:24px; }
.flow-step { border:0; border-radius:0; border-top:2px solid #d0d0c8; background:none; padding:24px 0 0; box-shadow:none; }
.flow-num { width:auto; height:auto; background:none; font-size:40px; color:#171a18; margin-bottom:18px; }
.faq-list { gap:0; }
.faq-item { border:0; border-bottom:1px solid #dcdcd4; border-radius:0; }
.faq-item summary { padding:26px 0; font-size:17px; }
.faq-a { padding-left:30px; }
.profile-photo { width:100%; height:320px; border:0; border-radius:8px; }
.profile-bio { line-height:2; }
.achv-item { background:#f5f5f1; border:0; border-radius:4px; }
.company-table th,.company-table td { padding-block:22px; }
#contact { background:#f5f5f1; }
.contact-cta { border:0; background:#fff; padding:38px; border-radius:8px; }
.field input,.field textarea { border:1px solid #d0d0c8; background:#fff; border-radius:5px; }
@media(max-width:1180px) {
  .wrap { padding-inline:32px; }
  nav a { font-size:11px; padding-inline:6px; }
  nav a.nav-cta { margin-left:4px; padding-inline:12px; }
  .player-screen { gap:36px; }
  .player-copy h1 { font-size:44px; }
  .player-sub { font-size:14px; }
  .section-head { grid-template-columns:140px 1fr; gap:16px 32px; }
}
@media(max-width:880px) {
  :root { --header-h:74px; }
  .wrap { padding-inline:28px; }
  #hero { padding-top:42px; }
  .player-screen { grid-template-columns:1fr; gap:34px; }
  .player-copy { grid-column:1; grid-row:1; padding:0; }
  .player-copy h1 { font-size:clamp(36px,6.2vw,55px); }
  .player-media { grid-column:1; grid-row:2; aspect-ratio:16/9; max-width:none; box-shadow:12px 12px 0 #ffd54a; }
  .player-sub { max-width:42em; }
  .watch-meta { margin-top:45px; }
  .channel-id { flex-basis:100%; }
  .channel-row .btn { margin-left:0; }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
  .stat:nth-child(2) { border:0; }
  .section-head { grid-template-columns:1fr; gap:15px; }
  .section-head .lead { grid-column:1; }
  .section-head .eyebrow { padding:0; }
  .pillar-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pillar { padding-inline:18px; }
  .pillar h3 { font-size:19px; }
  .ch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .profile-photo { width:280px; }
}
@media(max-width:560px) {
  .wrap { padding-inline:24px; }
  .hero-kicker { font-size:11px; margin-bottom:20px; }
  .player-copy h1 { font-size:38px; line-height:1.4; }
  .player-copy h1 .nb { white-space:normal; }
  .player-copy { background:#fff; }
  .player-sub { font-size:13px; margin-top:23px; }
  .player-actions { margin-top:26px; gap:10px; }
  .player-actions .btn { padding-inline:18px; }
  .player-chrome { padding:40px 12px 10px; }
  .watch-title { font-size:12px; }
  .watch-meta { padding-bottom:26px; }
  .channel-sub { font-size:11px; }
  .channel-name { font-size:15px; }
  #stats { padding-block:36px; }
  .stat { padding-right:12px; }
  .stat-num { font-size:39px; }
  .stat-en { font-size:9px; letter-spacing:.1em; }
  .stat-label { font-size:11px; }
  .pillar-grid,.ch-grid { grid-template-columns:1fr; }
  .pillar,.pillar:first-child,.pillar:last-child { padding:25px 0; border:0; border-bottom:1px solid #dcdcd4; }
  .pillar-ico { margin-bottom:18px; }
  .pillar h3 { font-size:23px; }
  .pipeline { gap:8px; }
  .pipe-step { padding-inline:15px; }
  .voice-grid { gap:26px; }
  .contact-cta { padding:26px; }
}

.fullscreen-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 6px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  pointer-events: auto;
}
.fullscreen-toggle[hidden] { display: none; }
.fullscreen-toggle:hover { background: rgba(255,255,255,.18); }
.fullscreen-status { position: absolute; z-index: 5; bottom: 76px; left: 16px; right: 16px; padding: 12px; background: #171a18; color: #fff; font-size: 13px; }
.player-media:fullscreen { position: fixed; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; box-shadow: none; background: #000; }
.player-media:fullscreen .player-video { object-fit: contain; border-radius: 0; }
.player-media:-webkit-full-screen { position: fixed; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; box-shadow: none; background: #000; }
.player-media:-webkit-full-screen .player-video { object-fit: contain; border-radius: 0; }
@media (pointer: coarse) { .fullscreen-toggle { width: 44px; height: 44px; padding: 12px; } }

/* 2026-09-30 色の整理: 文字は黒とグレーの2色だけ。黄色は面・線・点の飾りにだけ使う */
:root { --sub: #52554f; }
.flow-step { border-top: 3px solid #ffd54a; }
.flow-step p { font-size: 14.5px; }
.company-table a, .media-links a { color: #171a18; text-decoration-color: #edbd29; text-decoration-thickness: 2px; }
.btn-ghost:hover, .sns-btn:hover, .works-toggle:hover, .media-links a:hover { color: #171a18; border-color: #171a18; }

/* その他のサービス: 普段はアイコン・名前・一言だけ。PCはカーソルを当てると、スマホはタップすると詳細とリンクが出る */
.sub-grid { gap: 16px; }
.sub-card { position: relative; display: flex; flex-direction: column; min-height: 224px; padding: 28px 26px; border: 1px solid #dcdcd4; border-radius: 10px; background: #fff; cursor: pointer; overflow: hidden; outline: none; }
.sub-card::after { content: "+"; position: absolute; top: 18px; right: 20px; font-size: 24px; line-height: 1; color: #171a18; transition: transform .25s; }
.sub-card:hover, .sub-card:focus-visible { transform: none; border-color: #171a18; }
.sub-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #ffd54a; margin-bottom: 18px; }
.sub-ico svg { width: 22px; height: 22px; fill: #171a18; }
.sub-card h3 { display: block; font-size: 19px; line-height: 1.5; margin: 0; padding-right: 20px; }
.sub-card .sub-tag { margin-top: 8px; font-size: 14.5px; color: #52554f; }
.sub-more p { font-size: 14px; line-height: 1.85; }
.sub-more-h { display: none; }
.sub-card .sub-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; margin-right: 14px; font-size: 14px; font-weight: 800; }
.sub-card .sub-link span { font-size: 10px; }
@media (hover: hover) and (min-width: 881px) {
  .sub-more { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 18px 24px; background: #171a18; color: #fff; opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; overflow-y: auto; }
  .sub-more p { color: #e9e9e4; line-height: 1.75; }
  .sub-more-h { display: block; margin-bottom: 8px; font-size: 16px; color: #fff; }
  .sub-card .sub-more .sub-link { display: flex; width: fit-content; min-height: 32px; margin-top: 6px; color: #ffd54a; }
  .sub-card:hover .sub-more, .sub-card:focus-within .sub-more, .sub-card.open .sub-more { opacity: 1; visibility: visible; }
  .sub-card:hover::after, .sub-card:focus-within::after, .sub-card.open::after { opacity: 0; }
  .sub-more { justify-content: safe center; }
}
@media not ((hover: hover) and (min-width: 881px)) {
  .sub-card { min-height: 0; display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; align-items: center; padding: 18px 44px 18px 18px; }
  .sub-card::after { top: 50%; margin-top: -11px; right: 16px; }
  .sub-card.open::after { top: 24px; margin-top: 0; }
  .sub-ico { grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; }
  .sub-ico svg { width: 19px; height: 19px; }
  .sub-card h3 { font-size: 17px; padding-right: 0; }
  .sub-card .sub-tag { margin-top: 2px; font-size: 13.5px; }
  .sub-more { grid-column: 1 / -1; }
  .sub-more { display: none; margin-top: 16px; padding-top: 16px; border-top: 1px solid #dcdcd4; }
  .sub-more p { color: #52554f; }
  .sub-card .sub-link { display: flex; color: #171a18; text-decoration: none; min-height: 44px; margin-top: 4px; }
  .sub-card .sub-link span { color: #edbd29; font-size: 12px; }
  .sub-card.open .sub-more { display: block; }
  .sub-card.open::after { transform: rotate(45deg); }
}
@media (hover: hover) and (min-width: 881px) and (max-width: 1180px) { .sub-card { min-height: 268px; } }

/* ご相談から納品まで: 4ステップを線でつないだ流れ図（PCは横、スマホは縦） */
.flow-line { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 8px 0 0; padding: 0; }
.flow-node { position: relative; text-align: center; }
.flow-node + .flow-node::before { content: ""; position: absolute; top: 36px; right: calc(50% + 44px); width: calc(100% - 64px); height: 2px; background: repeating-linear-gradient(90deg, #171a18 0 8px, transparent 8px 14px); }
.flow-node + .flow-node::after { content: ""; position: absolute; top: 31px; left: calc(50% - 46px); border: 6px solid transparent; border-left: 9px solid #171a18; }
.flow-dot { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto; border-radius: 50%; background: #ffd54a; }
.flow-dot svg { width: 32px; height: 32px; fill: #171a18; }
.flow-no { display: block; margin-top: 16px; font-size: 12px; font-weight: 800; letter-spacing: .14em; color: #52554f; }
.flow-node h3 { margin-top: 4px; font-size: 19px; }
.flow-chips { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 14px 0 0; padding: 0; }
.flow-chips li { padding: 4px 11px; border: 1px solid #d6d6ce; border-radius: 999px; background: #fff; font-size: 13px; font-weight: 700; }
.flow-note { margin-top: 28px; }
@media (max-width: 880px) {
  .flow-line { grid-template-columns: 1fr; gap: 0; }
  .flow-node { display: grid; grid-template-columns: 56px 1fr; column-gap: 16px; text-align: left; padding-bottom: 28px; }
  .flow-node:not(:last-child)::before { content: ""; position: absolute; top: 60px; bottom: 4px; left: 27px; right: auto; width: 2px; height: auto; background: repeating-linear-gradient(180deg, #171a18 0 6px, transparent 6px 11px); }
  .flow-node + .flow-node::before { top: 60px; }
  .flow-node:last-child::before { content: none; }
  .flow-node + .flow-node::after { content: none; }
  .flow-dot { grid-row: 1 / span 3; width: 56px; height: 56px; margin: 0; }
  .flow-dot svg { width: 26px; height: 26px; }
  .flow-no { margin-top: 2px; }
  .flow-chips { justify-content: flex-start; margin-top: 10px; }
}

/* YouTube運用の6工程: 番号付きのカードを矢印でつなぐ。3つの強みは数字を大きく見せる */
.pipeline { counter-reset: pipe; }
.pipe-step { counter-increment: pipe; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 104px; padding: 12px 18px; background: #fff; border: 1px solid #d6d6ce; border-top: 3px solid #ffd54a; border-radius: 8px; font-size: 15px; font-weight: 800; color: #171a18; cursor: help; }
.pipe-step::before { content: "0" counter(pipe); font-size: 11px; font-weight: 800; letter-spacing: .12em; color: #52554f; }
.pipe-step:hover, .pipe-step:focus-visible { border-color: #171a18; border-top-color: #ffd54a; }
.pipe-arrow { color: #171a18; }
.pipe-hint { display: block; margin-top: 6px; font-size: 13px; color: #52554f; }
.pillar-key { font-size: 44px; font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: #171a18; margin-bottom: 10px; }
.pillar-key small { margin-left: 4px; font-size: 16px; font-weight: 800; letter-spacing: 0; }
.pillar-key::after { content: ""; display: block; width: 40px; height: 4px; margin-top: 12px; border-radius: 2px; background: #ffd54a; }
.pillar-ico { display: none; }
@media (max-width: 560px) { .pillar-key { font-size: 38px; } .pipe-step { min-width: 0; padding: 10px 14px; } }
@media (max-width: 560px) {
  .pipeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .pipeline .pipe-arrow { display: none; }
  .pipe-item, .pipe-step { width: 100%; }
  .pipe-step { padding: 10px 6px; font-size: 13.5px; white-space: nowrap; }
  .pipeline .pipe-item.open { grid-column: 1 / -1; }
  .pipe-item:not(.open):hover .pipe-tip, .pipe-item:not(.open) .pipe-step:focus-visible + .pipe-tip { display: none; }
  .pipe-item.open { flex-direction: column; }
  .pipe-item.open .pipe-tip { margin-top: 8px; background: #fff; border-color: #171a18; }
}

/* メディア掲載: 実績の直後に、媒体名＋一言のカードを横一列で置く（会社概要から移動） */
.media-band { margin-top: 56px; padding-top: 32px; border-top: 1px solid #d6d6ce; }
.media-band-h { display: flex; align-items: baseline; gap: 12px; margin: 0 0 18px; font-size: 18px; font-weight: 800; }
.media-band-h .en { font-size: 12px; letter-spacing: .16em; color: #52554f; }
.media-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; }
.media-grid a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 18px 20px; background: #fff; border: 1px solid #dcdcd4; border-radius: 8px; color: #171a18; text-decoration: none; transition: border-color .2s; }
.media-grid a:hover, .media-grid a:focus-visible { border-color: #171a18; }
.media-src { font-size: 12px; font-weight: 800; color: #52554f; }
.media-t { font-size: 15px; font-weight: 800; line-height: 1.5; }
.media-t::after { content: " ↗"; color: #edbd29; }
@media (max-width: 880px) { .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .media-grid { grid-template-columns: 1fr; } .media-grid a { padding: 14px 16px; } }

/* 会社概要の事業内容: 10項目を2列の箇条書きに */
.biz-list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 20px; margin: 0; padding: 0; }
.biz-list li { position: relative; padding-left: 14px; }
.biz-list li::before { content: ""; position: absolute; left: 0; top: .75em; width: 6px; height: 6px; border-radius: 50%; background: #ffd54a; }
@media (max-width: 560px) { .biz-list { grid-template-columns: 1fr; } }

/* セクション見出し: 英字の小見出しを日本語見出しの真上に置き、どちらも本文と同じ左端にそろえる */
.section-head { display: block; margin-bottom: 44px; }
.section-head .eyebrow { padding: 0; margin-bottom: 14px; }
.section-head h2 { margin: 0; }
.section-head .lead { margin-top: 16px; max-width: 46em; }
/* 「」で始まる見出しは、括弧の余白ぶん左にずらして左端をそろえる */
h2.hang { text-indent: -0.5em; }
