/* ==========================================================================
   コーポレートトップ（2026-09-06 刷新）
   色：シアン #15A4C6 はボタン・リンク専用。事業名は黒、支援メニュー5つだけ
   ブランドカラーを文字色として使い、階層が色でも分かるようにしている。
   本文はグレーを使わず黒 #1a1a1a。強弱はサイズと太さで付ける。
   ========================================================================== */
.cp-main {
	--cp-ink: #111111;
	--cp-text: #1a1a1a;
	--cp-hair: #E6EAEB;
	--cp-hair-lt: #EDF0F1;
	--cp-tint: #F4F8FA;
	--cp-label: #0C6F88;
	--cp-inner: 1200px;
	--cp-strategy: #6E4FC0;
	--cp-acq: #C22B60;
	--cp-nur: #4F8C28;
	--cp-data: #0C6F88;
	--cp-ops: #A8760B;
	color: var(--cp-text);
}
.cp-inner { max-width: var(--cp-inner); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.cp-num { font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }
.cp-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.16em; color: var(--cp-label); }
.cp-eyebrow--ink { color: rgba(255,255,255,0.6); }
.cp-rule { height: 1px; background: var(--cp-ink); }
.cp-c-strategy { color: var(--cp-strategy); } .cp-c-acq { color: var(--cp-acq); }
.cp-c-nur { color: var(--cp-nur); } .cp-c-data { color: var(--cp-data); } .cp-c-ops { color: var(--cp-ops); }
.cp-more { font-size: 13px; font-weight: 700; color: var(--cp-data); text-decoration: none; }
.cp-more:hover { text-decoration: underline; }
.cp-btn { display: inline-block; background: var(--c-primary, #15A4C6); color: #fff !important;
	font-size: 14px; font-weight: 700; padding: 15px 30px; border-radius: 6px; text-decoration: none; }
.cp-btn:hover { background: var(--c-primary-dk, #0C6F88); }
.cp-btn--ghost { background: transparent; border: 1px solid rgba(255,255,255,0.4); padding: 14px 26px; }
.cp-btn--ghost:hover { background: rgba(255,255,255,0.08); }
.cp-btn--lg { font-size: 14px; padding: 17px 34px; flex: none; }

/* ---------- FV ---------- */
.cp-fv { background: var(--cp-ink); color: #fff; padding: 104px 0 56px; }
.cp-fv__brand { display: block; letter-spacing: 0.22em; }
.cp-fv__title { font-size: 58px; font-weight: 900; line-height: 1.42; letter-spacing: -0.02em;
	margin: 0; color: #fff; }
.cp-fv__actions { display: flex; align-items: center; gap: 14px; margin-top: 40px; }
.cp-fv__biz { display: grid; grid-template-columns: repeat(3, minmax(0,1fr));
	border-top: 1px solid rgba(255,255,255,0.16); margin-top: 64px; }
.cp-fv__bizitem { padding: 20px 28px; border-left: 1px solid rgba(255,255,255,0.12); }
.cp-fv__biz .cp-fv__bizitem:first-child { border-left: 0; padding-left: 0; }
.cp-fv__biz .cp-fv__bizitem:last-child { padding-right: 0; }
.cp-fv__bizname { font-size: 14px; font-weight: 700; }
.cp-fv__bizdesc { font-size: 12.5px; line-height: 1.85; color: rgba(255,255,255,0.66); margin-top: 7px; }

/* ---------- セクション共通 ---------- */
/* セクションは上下に十分な余白を取り、一つおきに地の色を変えて区切る */
.cp-section { padding: 84px 0; }
.cp-section--tint { background: var(--cp-tint); }
.cp-head { display: flex; align-items: baseline; gap: 16px; padding-bottom: 16px; }
.cp-head--between { justify-content: space-between; align-items: flex-end; }
.cp-head__left { display: flex; align-items: baseline; gap: 16px; }
.cp-head__title { font-size: 24px; font-weight: 900; letter-spacing: -0.01em; margin: 0; color: var(--cp-ink); }
.cp-head__count { font-size: 12px; color: var(--cp-ink); }
.cp-section__foot { padding-top: 30px; }

/* ---------- Philosophy ---------- */
.cp-philo { display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: 80px; padding-top: 44px; }
.cp-philo__left { display: flex; flex-direction: column; gap: 24px; }
.cp-philo__words { display: flex; align-items: baseline; gap: 14px; }
.cp-philo__amplify { font-size: 27px; font-weight: 900; letter-spacing: -0.01em; color: var(--c-primary, #15A4C6); }
.cp-philo__impel { font-size: 27px; font-weight: 900; letter-spacing: -0.01em; color: var(--cp-acq); }
.cp-philo__x { font-size: 19px; font-weight: 500; color: #8A9A9E; }
.cp-philo__statement { font-size: 30px; font-weight: 900; line-height: 1.6; letter-spacing: -0.01em; margin: 0; }
.cp-philo__right { display: flex; flex-direction: column; gap: 26px; padding-top: 6px; }
.cp-philo__right p { font-size: 14px; line-height: 2; margin: 0; }

/* ---------- 事業 ---------- */
.cp-biz { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 48px;
	align-items: start; padding: 36px 0 40px; border-bottom: 1px solid var(--cp-hair); }
.cp-biz--first { padding-top: 40px; padding-bottom: 44px; }
.cp-biz--last { border-bottom: 0; padding-bottom: 4px; }
.cp-biz__head { display: flex; flex-direction: column; gap: 12px; }
.cp-biz__no { font-size: 12px; font-weight: 700; color: var(--cp-ink); }
.cp-biz__name { font-size: 22px; font-weight: 900; line-height: 1.5; margin: 0; }
.cp-biz__desc { font-size: 13.5px; line-height: 1.95; margin: 0; }
.cp-biz__body { padding-top: 4px; }
.cp-biz__body p { font-size: 14px; line-height: 2; margin: 0; max-width: 44em; }
.cp-svc { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 44px; row-gap: 26px; }
.cp-svc__item { display: flex; flex-direction: column; gap: 9px; }
.cp-svc__title { display: flex; align-items: baseline; gap: 11px; font-size: 16px; font-weight: 900; }
.cp-svc__title .cp-num { font-size: 11px; font-weight: 700; }
.cp-svc__desc { font-size: 13px; line-height: 1.9; margin: 0; }

/* ---------- 立ち位置 ---------- */
.cp-stance { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 48px; padding-top: 36px; }
.cp-stance__item h3 { font-size: 18px; font-weight: 900; line-height: 1.55; margin: 0 0 12px; }
.cp-stance__item p { font-size: 13.5px; line-height: 1.95; margin: 0; }

/* ---------- メディア ---------- */
.cp-media { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; padding-top: 32px; }
.cp-media__item { display: flex; flex-direction: column; gap: 11px; }
.cp-media__thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.cp-media__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.cp-media__item:hover .cp-media__thumb img { transform: scale(1.04); }
.cp-cat { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; }
.cp-cat:hover { text-decoration: underline; }
.cp-media__title { font-size: 15px; font-weight: 700; line-height: 1.6; margin: 0; }
.cp-media__title a { color: var(--cp-ink); text-decoration: none; }
.cp-media__title a:hover { color: var(--cp-data); }

/* ---------- 事業者情報 ---------- */
.cp-info { display: grid; grid-template-columns: 160px minmax(0,1fr); column-gap: 32px;
	max-width: 780px; margin: 0; padding-top: 8px; }
.cp-info dt { font-size: 13px; font-weight: 700; padding: 16px 0; border-bottom: 1px solid var(--cp-hair-lt); }
.cp-info dd { font-size: 14px; line-height: 1.85; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--cp-hair-lt); }
.cp-info dt:last-of-type, .cp-info dd:last-of-type { border-bottom: 0; }

/* ---------- CTA ---------- */
.cp-cta { background: var(--cp-ink); color: #fff; padding: 64px 0; }
.cp-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 56px; }
.cp-cta__text { display: flex; flex-direction: column; gap: 14px; }
.cp-cta__title { font-size: 28px; font-weight: 900; letter-spacing: -0.01em; margin: 0; color: #fff; }
.cp-cta__lead { font-size: 14px; line-height: 1.95; color: rgba(255,255,255,0.78); max-width: 620px; margin: 0; }

/* ---------- レスポンシブ ---------- */
@media (max-width: 1100px) {
	.cp-philo { grid-template-columns: 1fr; gap: 32px; }
	.cp-biz { grid-template-columns: 1fr; gap: 24px; }
	.cp-svc { column-gap: 32px; }
	.cp-stance { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 768px) {
	.cp-inner { padding: 0 20px; }
	.cp-fv { padding: 52px 0 30px; }
	.cp-fv__title { font-size: 34px; line-height: 1.48; margin-top: 18px; }
	.cp-fv__actions { flex-direction: column; align-items: stretch; gap: 10px; margin-top: 30px; }
	.cp-btn { text-align: center; padding: 14px 0; }
	.cp-btn--ghost { padding: 13px 0; }
	.cp-fv__biz { grid-template-columns: 1fr; margin-top: 34px; }
	.cp-fv__bizitem { padding: 15px 0; border-left: 0; border-bottom: 1px solid rgba(255,255,255,0.10); }
	.cp-fv__biz .cp-fv__bizitem:last-child { border-bottom: 0; }
	.cp-section { padding: 40px 0; }
	.cp-head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.cp-head--between { flex-direction: row; align-items: flex-end; }
	.cp-head--between .cp-head__left { flex-direction: column; align-items: flex-start; gap: 6px; }
	.cp-head__title { font-size: 19px; }
	.cp-philo { padding-top: 26px; gap: 24px; }
	.cp-philo__amplify, .cp-philo__impel { font-size: 21px; }
	.cp-philo__statement { font-size: 22px; }
	.cp-philo__right p { font-size: 13.5px; }
	.cp-biz { padding: 22px 0; }
	.cp-biz--first { padding-top: 22px; padding-bottom: 22px; }
	.cp-biz__name { font-size: 19px; }
	.cp-svc { grid-template-columns: 1fr; row-gap: 0; }
	.cp-svc__item { gap: 7px; padding: 14px 0; border-bottom: 1px solid var(--cp-hair-lt); }
	.cp-svc__item:last-child { border-bottom: 0; }
	.cp-svc__title { font-size: 15px; }
	.cp-stance { grid-template-columns: 1fr; gap: 0; padding-top: 18px; }
	.cp-stance__item { padding: 16px 0; border-bottom: 1px solid var(--cp-hair-lt); }
	.cp-stance__item:last-child { border-bottom: 0; }
	.cp-stance__item h3 { font-size: 16px; margin-bottom: 8px; }
	.cp-stance__item p { font-size: 12.5px; line-height: 1.9; }
	.cp-media { grid-template-columns: 1fr; gap: 0; padding-top: 18px; }
	.cp-media__item { padding: 14px 0; border-bottom: 1px solid var(--cp-hair-lt); }
	.cp-media__item:last-child { border-bottom: 0; }
	.cp-info { grid-template-columns: 92px minmax(0,1fr); column-gap: 16px; }
	.cp-info dt { font-size: 12px; padding: 14px 0; }
	.cp-info dd { font-size: 13px; padding: 14px 0; }
	.cp-cta { padding: 34px 0; }
	.cp-cta__inner { flex-direction: column; align-items: stretch; gap: 16px; }
	.cp-cta__title { font-size: 21px; line-height: 1.5; }
	.cp-cta__lead { font-size: 12.5px; line-height: 1.9; }
	.cp-btn--lg { text-align: center; }
}

/* CTA（インク帯）の直後にフッターが来るので、テーマ既定の72pxの空きは不要 */
.site-footer { margin-top: 0; }

/* --------------------------------------------------------------------------
   ヘッダー
   ページ内アンカーの項目が「現在のページ」扱いになってシアンになるので、黒で固定する。
   お問い合わせだけ .menu-cta （style.css側のシアンボタン）。
   -------------------------------------------------------------------------- */
.main-navigation .main-nav ul li > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a,
.main-navigation .main-nav ul li[class*="current_page_"] > a { color: var(--cp-ink) !important; }
.main-navigation .main-nav ul li > a:hover { color: var(--c-primary, #15A4C6); }
.main-navigation .menu-item.menu-cta > a,
.main-navigation .menu-item.menu-cta.current-menu-item > a { color: #fff !important; }

/* --------------------------------------------------------------------------
   CTA：右に問い合わせフォームを埋め込む
   インク地の上ではフォームの文字が読めないので、白の面に乗せる
   -------------------------------------------------------------------------- */
.cp-cta__inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,480px);
	gap: 64px; align-items: start; }
.cp-cta__text { padding-top: 4px; }
.cp-cta__form { background: #fff; border-radius: 8px; padding: 26px 26px 22px; color: var(--cp-text); }
.cp-cta__form .hs-form-field { margin-bottom: 14px; }
.cp-cta__form label { display: block; font-size: 12px; font-weight: 700; color: var(--cp-text); margin-bottom: 6px; }
.cp-cta__form .hs-field-desc { font-size: 11px; font-weight: 400; color: #5B686B; }
.cp-cta__form input[type="text"], .cp-cta__form input[type="email"], .cp-cta__form input[type="tel"],
.cp-cta__form input[type="number"], .cp-cta__form textarea, .cp-cta__form select {
	width: 100%; box-sizing: border-box; font-family: inherit; font-size: 14px;
	padding: 10px 12px; border: 1px solid #DCE4E6; border-radius: 4px; background: #fff; color: var(--cp-text); }
.cp-cta__form textarea { min-height: 96px; resize: vertical; }
.cp-cta__form input:focus, .cp-cta__form textarea:focus, .cp-cta__form select:focus {
	outline: 2px solid rgba(21,164,198,0.35); outline-offset: 1px; border-color: var(--c-primary, #15A4C6); }
.cp-cta__form .hs-button, .cp-cta__form input[type="submit"] {
	width: 100%; background: var(--c-primary, #15A4C6); color: #fff; border: 0; border-radius: 6px;
	padding: 15px 24px; font-size: 14px; font-weight: 700; font-family: inherit; cursor: pointer; }
.cp-cta__form .hs-button:hover, .cp-cta__form input[type="submit"]:hover { background: var(--c-primary-dk, #0C6F88); }
.cp-cta__form .hs-error-msgs { list-style: none; margin: 6px 0 0; padding: 0; }
.cp-cta__form .hs-error-msgs label { color: #C22B60; font-weight: 500; font-size: 11.5px; margin: 0; }
.cp-cta__form .legal-consent-container { font-size: 11.5px; line-height: 1.7; }
.cp-cta__form .submitted-message { font-size: 14px; line-height: 1.9; }
@media (max-width: 1100px) {
	.cp-cta__inner { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 768px) {
	.cp-cta__form { padding: 20px 18px 18px; }
}

/* --------------------------------------------------------------------------
   メディア：1本を大きく、残り4本をヘアラインのリストに
   -------------------------------------------------------------------------- */
.cp-media { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 48px; align-items: start; }
.cp-media__lead { display: flex; flex-direction: column; gap: 13px; }
.cp-media__lead .cp-media__thumb { aspect-ratio: 16 / 9; }
.cp-media__ttl { font-size: 20px; font-weight: 700; line-height: 1.55; margin: 0; }
.cp-media__row { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 16px;
	align-items: start; padding: 15px 0; border-bottom: 1px solid var(--cp-hair-lt); }
.cp-media__list .cp-media__row:first-child { padding-top: 0; }
.cp-media__list .cp-media__row:last-child { border-bottom: 0; padding-bottom: 0; }
.cp-media__row .cp-media__thumb { aspect-ratio: 16 / 9; }
.cp-media__rttl { font-size: 14.5px; font-weight: 700; line-height: 1.6; margin: 6px 0 0; }
.cp-media__ttl a, .cp-media__rttl a { color: var(--cp-ink); text-decoration: none; }
.cp-media__ttl a:hover, .cp-media__rttl a:hover { color: var(--cp-data); }
.cp-media__lead:hover .cp-media__thumb img,
.cp-media__row:hover .cp-media__thumb img { transform: scale(1.04); }
@media (max-width: 768px) {
	.cp-media { grid-template-columns: 1fr; gap: 18px; padding-top: 18px; }
	.cp-media__ttl { font-size: 16px; }
	.cp-media__row { grid-template-columns: 104px minmax(0,1fr); gap: 14px; padding: 14px 0; }
	.cp-media__rttl { font-size: 13.5px; margin-top: 5px; }
}

/* --------------------------------------------------------------------------
   CTA：サービスLPと同じ形に揃える（左に3ステップ、フォームに見出し）
   -------------------------------------------------------------------------- */
.cp-step { margin-top: 28px; }
.cp-step__i { display: flex; gap: 18px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,0.10); }
.cp-step__i:first-child { border-top-color: rgba(255,255,255,0.16); }
.cp-step__i:last-child { border-bottom: 1px solid rgba(255,255,255,0.10); }
.cp-step__n { font-size: 11px; color: rgba(255,255,255,0.45); width: 20px; flex: none; }
.cp-step__t { font-size: 14px; font-weight: 700; }
.cp-step__d { font-size: 12.5px; line-height: 1.85; color: rgba(255,255,255,0.66); margin-top: 5px; }
.cp-form__t { font-size: 15px; font-weight: 700; padding-bottom: 14px;
	border-bottom: 1px solid var(--cp-hair-lt); margin-bottom: 6px; }
@media (max-width: 768px) {
	.cp-step { margin-top: 20px; }
	.cp-step__d { font-size: 12px; }
}
