/* ==========================================================================
   academy トップ（2026-09-06 改修）
   色の役割：シアン #15A4C6 = UI（ボタン・リンク）。他のブランドカラーは
   「その記事がどの大分類か」を示す文字色としてのみ使う。帯や罫には乗せない。
   ========================================================================== */
.ac-main {
	--ac-ink: #111111;
	--ac-hair: #E6EAEB;
	--ac-hair-lt: #EDF0F1;
	--ac-mute: #93A0A3;
	--ac-body: #5B686B;
	--ac-inner: 1200px;

	--ac-strategy: #6E4FC0;  --ac-strategy-on: #B49BE8;
	--ac-channel: #C22B60;   --ac-channel-on: #F07AA3;
	--ac-nurturing: #4F8C28; --ac-nurturing-on: #8BC96A;
	--ac-hubspot: #A8760B;   --ac-hubspot-on: #E9A82C;
	--ac-data: #0C6F88;      --ac-data-on: #5FCDE4;
}
.ac-inner { max-width: var(--ac-inner); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ac-num { font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }
.ac-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.16em; color: var(--ac-mute); }
.ac-eyebrow--onink { color: rgba(255,255,255,0.55); }
.ac-rule { height: 1px; background: var(--ac-ink); }
.ac-date { font-size: 12px; color: var(--ac-mute); display: block; }

.ac-cat { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; display: inline-block; }
.ac-cat:hover { text-decoration: underline; }
.ac-c-strategy { color: var(--ac-strategy); }  .ac-c-channel { color: var(--ac-channel); }
.ac-c-nurturing { color: var(--ac-nurturing); } .ac-c-hubspot { color: var(--ac-hubspot); }
.ac-c-data { color: var(--ac-data); }
.ac-d-strategy { color: var(--ac-strategy-on); }  .ac-d-channel { color: var(--ac-channel-on); }
.ac-d-nurturing { color: var(--ac-nurturing-on); } .ac-d-hubspot { color: var(--ac-hubspot-on); }
.ac-d-data { color: var(--ac-data-on); }

.ac-btn { display: inline-block; background: var(--c-primary, #15A4C6); color: #fff !important;
	font-size: 13px; font-weight: 700; padding: 13px 26px; border-radius: 6px; text-decoration: none; }
.ac-btn:hover { background: var(--c-primary-dk, #0C6F88); }
.ac-btn--lg { font-size: 14px; padding: 17px 32px; flex: none; }

/* ---------- ヒーロー ---------- */
.ac-hero { background: var(--ac-ink); color: #fff; padding: 56px 0 44px; }
.ac-hero__bar { display: flex; align-items: center; justify-content: space-between;
	padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,0.14); }
.ac-hero__count { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: rgba(255,255,255,0.45); }
.ac-hero__main { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.08fr); gap: 56px;
	align-items: center; margin-top: 34px; }
.ac-hero__text { display: flex; flex-direction: column; gap: 20px; }
.ac-hero__title { font-size: 34px; font-weight: 900; line-height: 1.45; letter-spacing: -0.01em; margin: 0; }
.ac-hero__title a { color: #fff; text-decoration: none; }
.ac-hero__title a:hover { color: var(--c-primary, #15A4C6); }
.ac-hero__lead { font-size: 15px; line-height: 1.95; color: rgba(255,255,255,0.68); max-width: 34em; margin: 0; }
.ac-hero__foot { display: flex; align-items: center; gap: 22px; margin-top: 8px; }
.ac-hero__date { font-size: 12px; color: rgba(255,255,255,0.45); }
.ac-hero__thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.ac-hero__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-hero__strip { display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
	border-top: 1px solid rgba(255,255,255,0.14); padding-top: 22px; margin-top: 34px; }
.ac-strip__item { display: flex; align-items: flex-start; gap: 13px; text-decoration: none; padding: 0 24px;
	border-left: 1px solid rgba(255,255,255,0.12); }
.ac-hero__strip .ac-strip__item:first-child { border-left: 0; padding-left: 0; }
.ac-hero__strip .ac-strip__item:last-child { padding-right: 0; }
.ac-strip__thumb { width: 84px; flex: none; align-self: flex-start; aspect-ratio: 16 / 9; overflow: hidden; display: block; }
.ac-strip__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-strip__body { display: flex; flex-direction: column; gap: 5px; }
.ac-strip__title { font-size: 12px; font-weight: 500; line-height: 1.55; color: rgba(255,255,255,0.82); }
.ac-strip__item:hover .ac-strip__title { color: #fff; }

/* ---------- セクション共通 ---------- */
.ac-section { padding: 64px 0 0; }
.ac-section + .ac-section { padding-top: 80px; }
.ac-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 16px; }
.ac-head__left { display: flex; align-items: baseline; gap: 16px; }
.ac-head__title { font-size: 24px; font-weight: 900; letter-spacing: -0.01em; margin: 0; color: var(--ac-ink); }
.ac-head__count { font-size: 12px; color: var(--ac-mute); }

/* ---------- 最新記事 ---------- */
.ac-latest__top { display: grid; grid-template-columns: 1fr 1fr; gap: 44px;
	padding: 28px 0 32px; border-bottom: 1px solid var(--ac-hair); }
.ac-wide { display: flex; align-items: flex-start; gap: 24px; }
.ac-wide__thumb { width: 268px; flex: none; align-self: flex-start; aspect-ratio: 16 / 9; overflow: hidden; display: block; }
.ac-wide__thumb img, .ac-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .35s ease; }
.ac-wide:hover .ac-wide__thumb img, .ac-item:hover .ac-item__thumb img { transform: scale(1.04); }
.ac-wide__body { display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.ac-wide__title { font-size: 19px; font-weight: 700; line-height: 1.55; margin: 0; }
.ac-wide__title a, .ac-item__title a { color: var(--ac-ink); text-decoration: none; }
.ac-wide__title a:hover, .ac-item__title a:hover { color: var(--c-primary-dk, #0C6F88); }
.ac-meta { display: flex; align-items: center; gap: 10px; }
.ac-badge { border: 1px solid var(--ac-ink); font-size: 10px; font-weight: 700;
	letter-spacing: 0.1em; padding: 2px 7px; }
.ac-latest__rest { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px; padding-top: 28px; }
.ac-item { display: flex; flex-direction: column; gap: 11px; }
.ac-item__thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.ac-item__title { font-size: 14.5px; font-weight: 700; line-height: 1.6; margin: 0; }

/* ---------- テーマから探す ---------- */
.ac-topics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr));
	column-gap: 48px; row-gap: 60px; padding-top: 40px; }
.ac-tile { display: flex; flex-direction: column; gap: 16px; }
.ac-tile__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.ac-tile__title { font-size: 17px; font-weight: 900; margin: 0; }
.ac-tile__title a { color: inherit; text-decoration: none; }
.ac-tile__title a:hover { text-decoration: underline; }
.ac-tile__count { font-size: 12px; color: var(--ac-mute); }
.ac-tile__desc { font-size: 13px; line-height: 1.9; color: var(--ac-body); margin: 0; }
.ac-tile__list { list-style: none; margin: 0; padding: 0; }
.ac-tile__list li { border-bottom: 1px solid var(--ac-hair-lt); }
.ac-tile__list li:last-child { border-bottom: 0; }
.ac-tile__list a { display: block; padding: 13px 0; text-decoration: none; }
.ac-tile__art { font-size: 13px; font-weight: 500; line-height: 1.7; color: #2B3538; }
.ac-tile__list a:hover .ac-tile__art { color: var(--c-primary-dk, #0C6F88); }
.ac-tile__more { font-size: 12px; font-weight: 700; text-decoration: none; }
.ac-tile__more:hover { text-decoration: underline; }

/* ---------- キーワード ---------- */
.ac-section--keywords { padding-bottom: 68px; }
.ac-keywords { display: flex; align-items: flex-start; gap: 40px; padding-top: 60px; }
.ac-keywords .ac-eyebrow { flex: none; padding-top: 7px; }
.ac-keywords__list { display: flex; flex-wrap: wrap; gap: 9px; }
.ac-kw { border: 1px solid #E0E5E6; border-radius: 999px; padding: 8px 15px;
	font-size: 13px; font-weight: 500; color: #35474B; text-decoration: none; }
.ac-kw:hover { border-color: var(--c-primary, #15A4C6); color: var(--c-primary-dk, #0C6F88); }

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

/* ---------- レスポンシブ ---------- */
@media (max-width: 1100px) {
	.ac-hero__main { grid-template-columns: 1fr; gap: 28px; }
	.ac-hero__lead { max-width: none; }
	.ac-hero__strip { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px 0; }
	.ac-hero__strip .ac-strip__item:nth-child(odd) { border-left: 0; padding-left: 0; }
	.ac-latest__rest { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.ac-topics { grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 32px; }
}
@media (max-width: 768px) {
	.ac-inner { padding: 0 20px; }
	.ac-hero { padding: 28px 0 32px; }
	.ac-hero__main { margin-top: 18px; gap: 16px; display: flex; flex-direction: column-reverse; }
	.ac-hero__title { font-size: 21px; line-height: 1.5; }
	.ac-hero__lead { font-size: 13px; line-height: 1.9; }
	.ac-hero__foot { justify-content: space-between; width: 100%; }
	.ac-hero__strip { grid-template-columns: 1fr; margin-top: 24px; gap: 0; }
	.ac-strip__item { padding: 12px 0; border-left: 0; border-top: 1px solid rgba(255,255,255,0.10); }
	.ac-topics { row-gap: 0; }
	.ac-hero__strip .ac-strip__item:first-child { border-top: 0; padding-top: 0; }
	.ac-section { padding-top: 32px; }
	.ac-head { flex-direction: column; align-items: flex-start; gap: 10px; }
	.ac-head__title { font-size: 19px; }
	.ac-latest__top { grid-template-columns: 1fr; gap: 0; padding: 18px 0 0; border-bottom: 0; }
	.ac-wide { flex-direction: column; gap: 11px; padding-bottom: 18px; border-bottom: 1px solid var(--ac-hair-lt); }
	.ac-wide__thumb { width: 100%; }
	.ac-wide__title { font-size: 16px; }
	.ac-latest__rest { grid-template-columns: 1fr; gap: 0; padding-top: 0; }
	.ac-item { flex-direction: row; align-items: flex-start; gap: 14px; padding: 14px 0;
		border-bottom: 1px solid var(--ac-hair-lt); }
	.ac-item__thumb { width: 104px; flex: none; }
	.ac-item__title { font-size: 13.5px; }
	.ac-item .ac-date { display: none; }
	.ac-topics { grid-template-columns: 1fr; row-gap: 0; padding-top: 8px; }
	.ac-tile { gap: 10px; padding: 18px 0; border-bottom: 1px solid var(--ac-hair-lt); }
	.ac-tile:last-child { border-bottom: 0; }
	.ac-tile__title { font-size: 15px; }
	.ac-tile__desc { font-size: 12px; line-height: 1.75; }
	.ac-tile__list li:nth-child(n+3) { display: none; }
	.ac-section--keywords { padding-bottom: 32px; }
	.ac-keywords { flex-direction: column; gap: 12px; padding-top: 28px; }
	.ac-keywords .ac-eyebrow { padding-top: 0; }
	.ac-cta { padding: 32px 0; }
	.ac-cta__inner { flex-direction: column; align-items: stretch; gap: 16px; }
	.ac-cta__title { font-size: 20px; line-height: 1.5; }
	.ac-cta__lead { font-size: 12.5px; line-height: 1.9; }
	.ac-btn--lg { text-align: center; }
}

/* --------------------------------------------------------------------------
   テーマ別一覧（カテゴリー／タグ）
   3列グリッドの最終行に1件だけ残ったときは、横並びカードにして間延びを防ぐ
   -------------------------------------------------------------------------- */
@media (min-width: 769px) {
	.article-grid > .article-card:last-child:nth-child(3n + 1) {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
		align-items: stretch;
	}
	.article-grid > .article-card:last-child:nth-child(3n + 1) > a { display: block; height: 100%; }
	.article-grid > .article-card:last-child:nth-child(3n + 1) .article-card__thumb { height: 100%; }
	.article-grid > .article-card:last-child:nth-child(3n + 1) .article-card__body { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
	.article-grid > .article-card:last-child:nth-child(3n + 1) .article-card__thumb img {
		width: 100%; height: 100%; object-fit: cover; display: block;
	}
}
