@charset "UTF-8";
/* ============================================================
   DeepSquare Media – デザイン刷新
   handoff: Deep Square デザイン刷新-handoff / DeepSquare Media Redesign.dc.html

   既存テーマ（LION MEDIA）のスタイルと衝突しないよう、すべて .ds- 接頭辞で
   名前空間を分けています。style.css は変更していません。
   ============================================================ */

:root {
	--ds-ink:        #101413;
	--ds-ink-2:      #3C4442;
	--ds-mute:       #6C7672;
	--ds-mute-2:     #8A938F;
	--ds-line:       #E2E5E2;
	--ds-line-2:     #DDE1DD;
	--ds-line-dark:  #2A302E;
	--ds-surface:    #F6F7F5;
	--ds-green:      #86BC25;
	--ds-green-deep: #5C8419;
	--ds-green-lite: #A8D34B;
	--ds-on-dark:    #D7DCD9;
	--ds-on-dark-2:  #A9B2AE;
	--ds-on-dark-3:  #B9C1BD;
	--ds-shell:      1320px;
	--ds-gutter:     40px;
	--ds-sans:       'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
	--ds-en:         'Libre Franklin', 'Helvetica Neue', Arial, sans-serif;
}

/* --- 共通土台 ------------------------------------------------ */

.ds-header,
.ds-top,
.ds-work,
.ds-footer {
	font-family: var(--ds-sans);
	color: var(--ds-ink);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}

.ds-header *,
.ds-top *,
.ds-work *,
.ds-footer * {
	box-sizing: border-box;
}

/* 色は指定しない。テーマ側に a{color:inherit;text-decoration:none} が既にあり、
   ここで color を書くと詳細度(0,1,1)が .ds-cta などのコンポーネント指定(0,1,0)を
   打ち消してしまう（黒地に黒文字になる）。 */
.ds-header a,
.ds-top a,
.ds-work a,
.ds-footer a {
	transition: color .2s ease, background-color .2s ease, border-color .2s ease, opacity .2s ease;
}

.ds-top ul,
.ds-top ol,
.ds-footer ul,
.ds-work ul,
.ds-header ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ds-top li,
.ds-footer li,
.ds-work li,
.ds-header li {
	list-style: none;
}

.ds-top img,
.ds-footer img,
.ds-work img,
.ds-header img {
	display: block;
	max-width: 100%;
}

.ds-shell {
	max-width: var(--ds-shell);
	margin: 0 auto;
	padding-left: var(--ds-gutter);
	padding-right: var(--ds-gutter);
}

.ds-en { font-family: var(--ds-en); }

/* サムネイル枠（WordPress が出力する img をトリミング表示する） */
.ds-thumb {
	position: relative;
	overflow: hidden;
	background: var(--ds-surface);
}
.ds-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ds-thumb-16x9 { aspect-ratio: 16 / 9; }
.ds-thumb-3x2  { aspect-ratio: 3 / 2; }
.ds-thumb-1x1  { aspect-ratio: 1 / 1; }

/* aspect-ratio 未対応ブラウザ向けのフォールバック */
@supports not (aspect-ratio: 1 / 1) {
	.ds-thumb-16x9 { padding-top: 56.25%; }
	.ds-thumb-3x2  { padding-top: 66.66%; }
	.ds-thumb-1x1  { padding-top: 100%; }
	.ds-thumb img {
		position: absolute;
		top: 0;
		left: 0;
	}
}

/* ============================================================
   ヘッダー
   ============================================================ */

.ds-header {
	position: sticky;
	top: 0;
	z-index: 20;
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--ds-line);
}

.ds-header__inner {
	padding-top: 14px;
	padding-bottom: 14px;
	min-height: 84px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px 36px;
}

/* ロゴ */
.ds-logo {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0;
	font-weight: normal;
	line-height: 1;
}
.ds-logo__link {
	display: flex;
	align-items: baseline;
	gap: 12px;
}
.ds-logo__name {
	font-family: var(--ds-en);
	font-weight: 700;
	font-size: 25px;
	letter-spacing: -0.015em;
}
.ds-logo__mark {
	width: 7px;
	height: 7px;
	background: var(--ds-green);
	transform: translateY(-3px);
	flex: 0 0 auto;
}
.ds-logo__sub {
	font-size: 12px;
	letter-spacing: 0.14em;
	color: var(--ds-mute);
	font-weight: 500;
}
.ds-logo__img { max-height: 44px; width: auto; }

/* グローバルナビ */
.ds-gnav { flex: 0 1 auto; min-width: 0; }
.ds-gnav__list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 30px;
	font-size: 14px;
	font-weight: 500;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ds-gnav__list > li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ds-gnav__list a {
	display: block;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}
.ds-gnav__list a:hover,
.ds-gnav__list .current-menu-item > a {
	border-bottom-color: var(--ds-green);
	color: var(--ds-ink);
}
/* wp_nav_menu が出力する入れ子リストはヘッダーでは表示しない */
.ds-gnav .sub-menu { display: none; }

.ds-header__tools {
	display: flex;
	align-items: center;
	gap: 16px;
	flex: 0 0 auto;
}

/* 検索トリガー */
.ds-search-trigger {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--ds-line);
	padding: 9px 14px;
	flex: 0 1 190px;
	min-width: 120px;
	background: none;
	cursor: pointer;
	font-family: inherit;
}
.ds-search-trigger:hover { border-color: var(--ds-ink); }
.ds-search-trigger__icon {
	width: 11px;
	height: 11px;
	border: 1.5px solid var(--ds-mute);
	border-radius: 50%;
	flex: 0 0 auto;
}
.ds-search-trigger__label {
	font-size: 12.5px;
	color: var(--ds-mute-2);
	white-space: nowrap;
}

/* CTA ボタン */
.ds-cta {
	display: block;
	background: var(--ds-ink);
	color: #ffffff;
	font-size: 13px;
	font-weight: 500;
	padding: 12px 20px;
	white-space: nowrap;
}
.ds-cta:hover {
	background: var(--ds-green);
	color: var(--ds-ink);
}

/* ハンバーガー（SP のみ表示） */
.ds-burger {
	display: none;
	width: 40px;
	height: 40px;
	border: 1px solid var(--ds-line);
	background: none;
	cursor: pointer;
	padding: 0;
	position: relative;
	flex: 0 0 auto;
}
.ds-burger span,
.ds-burger::before,
.ds-burger::after {
	content: "";
	position: absolute;
	left: 50%;
	width: 18px;
	height: 1.5px;
	background: var(--ds-ink);
	transform: translateX(-50%);
	transition: transform .2s ease, opacity .2s ease;
}
.ds-burger::before { top: 13px; }
.ds-burger span   { top: 19px; }
.ds-burger::after { top: 25px; }
.ds-burger[aria-expanded="true"]::before { top: 19px; transform: translateX(-50%) rotate(45deg); }
.ds-burger[aria-expanded="true"] span    { opacity: 0; }
.ds-burger[aria-expanded="true"]::after  { top: 19px; transform: translateX(-50%) rotate(-45deg); }

/* 開閉パネル（検索 / SP メニュー） */
.ds-panel {
	display: none;
	border-top: 1px solid var(--ds-line);
	background: #ffffff;
}
.ds-panel.is-open { display: block; }
.ds-panel__inner {
	padding-top: 24px;
	padding-bottom: 28px;
}

.ds-panel .searchform,
.ds-panel form {
	display: flex;
	gap: 0;
	max-width: 560px;
}
.ds-panel input[type="text"],
.ds-panel input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	border: 1px solid var(--ds-line);
	padding: 12px 14px;
	font-size: 14px;
	font-family: inherit;
	background: #ffffff;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
.ds-panel input[type="submit"],
.ds-panel button[type="submit"] {
	flex: 0 0 auto;
	border: 0;
	background: var(--ds-ink);
	color: #ffffff;
	font-size: 13px;
	font-weight: 500;
	padding: 12px 22px;
	cursor: pointer;
	font-family: inherit;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
.ds-panel input[type="submit"]:hover,
.ds-panel button[type="submit"]:hover {
	background: var(--ds-green);
	color: var(--ds-ink);
}

.ds-spnav__list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ds-spnav__list li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ds-spnav__list a {
	display: block;
	padding: 14px 0;
	border-bottom: 1px solid var(--ds-line);
	font-size: 15px;
	font-weight: 500;
}
.ds-spnav__list a:hover { color: var(--ds-green-deep); }
.ds-spnav__list .sub-menu a { padding-left: 16px; font-size: 14px; font-weight: 400; }

.ds-spnav__util {
	margin-top: 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	font-size: 13px;
	color: var(--ds-mute);
}

/* ============================================================
   FEATURED（トップ最上部）
   ============================================================ */

.ds-top {
	background: #ffffff;
	padding-bottom: 96px; /* OUR WORK との間を body 背景(#f2f5f9)ではなく白で埋める */
}

.ds-featured { padding-top: 64px; }

.ds-sectionbar {
	display: flex;
	align-items: baseline;
	gap: 20px;
	margin-bottom: 32px;
}
.ds-sectionbar__label {
	font-family: var(--ds-en);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ds-green-deep);
	white-space: nowrap;
}
.ds-sectionbar__rule {
	flex: 1;
	height: 1px;
	background: var(--ds-line);
}
.ds-sectionbar__meta {
	font-size: 12px;
	color: var(--ds-mute-2);
	white-space: nowrap;
}

.ds-featured__body {
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
	align-items: start;
}

/* リード記事 */
.ds-lead {
	display: block;
	/* リード画像が大きくなりすぎるため handoff の 520px から縮小。
	   サイドリストへ幅を回して、画像高を 412px→365px に抑えている。 */
	flex: 1 1 460px;
	min-width: 0;
}
.ds-lead:hover .ds-lead__title { color: var(--ds-green-deep); }
.ds-lead__meta {
	margin-top: 26px;
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.ds-badge {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--ds-ink);
	background: var(--ds-green);
	padding: 5px 10px;
	white-space: nowrap;
}
.ds-lead__tags {
	font-size: 12.5px;
	color: var(--ds-mute-2);
	letter-spacing: 0.04em;
}
.ds-lead__title {
	margin: 18px 0 0;
	font-size: clamp(24px, 2.6vw, 34px);
	line-height: 1.32;
	font-weight: 700;
	letter-spacing: -0.01em;
	text-wrap: pretty;
	transition: color .2s ease;
}
.ds-lead__text {
	margin: 20px 0 0;
	font-size: 15.5px;
	line-height: 1.95;
	color: var(--ds-ink-2);
	/* タイトルと同じ幅まで本文を伸ばす（handoff の max-width:60ch は狭すぎたため解除） */
	text-wrap: pretty;
}
.ds-more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 24px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--ds-green-deep);
	border-bottom: 1px solid var(--ds-green-deep);
	padding-bottom: 3px;
}

/* リード横のリスト */
.ds-sublist {
	display: flex;
	flex-direction: column;
	border-top: 2px solid var(--ds-ink);
	flex: 1 1 380px;
	min-width: 0;
}
.ds-sublist__item {
	display: grid;
	/* 16:9 統一に伴いサムネイルを拡大（160px = 90px高）。
	   1行タイトルの本文ブロック(約53px)より高くなり、行の高さが揃う。 */
	grid-template-columns: 1fr 160px;
	gap: 20px;
	padding: 24px 0;
	border-bottom: 1px solid var(--ds-line);
	align-items: start;
}
.ds-sublist__item:hover { background: var(--ds-surface); }
.ds-sublist__meta {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
	font-size: 11.5px;
	color: var(--ds-mute-2);
	letter-spacing: 0.05em;
}
.ds-sublist__cat {
	color: var(--ds-green-deep);
	font-weight: 500;
}
.ds-sublist__title {
	margin: 10px 0 0;
	font-size: 16px;
	line-height: 1.6;
	font-weight: 500;
	text-wrap: pretty;
}
.ds-sublist__more {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 0;
	font-size: 13.5px;
	font-weight: 500;
}
.ds-sublist__more:hover { color: var(--ds-green-deep); }

/* ============================================================
   注目キーワード
   ============================================================ */

.ds-keywords { margin-top: 56px; }
.ds-keywords__inner {
	border-top: 1px solid var(--ds-line);
	border-bottom: 1px solid var(--ds-line);
	padding: 20px 0;
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
}
.ds-keywords__label {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--ds-mute);
	white-space: nowrap;
}
.ds-pills {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.ds-pill {
	display: block;
	font-size: 13px;
	padding: 7px 14px;
	border: 1px solid var(--ds-line);
	color: var(--ds-ink-2);
}
.ds-pill:hover {
	border-color: var(--ds-green-deep);
	color: var(--ds-green-deep);
}

/* ============================================================
   本体レイアウト（main + aside）
   ============================================================ */

.ds-layout {
	padding-top: 72px;
	display: flex;
	flex-wrap: wrap;
	gap: 72px;
	align-items: start;
}

.ds-main {
	display: flex;
	flex-direction: column;
	gap: 84px;
	flex: 1 1 600px;
	min-width: 0;
}

.ds-aside {
	display: flex;
	flex-direction: column;
	gap: 56px;
	position: sticky;
	top: 108px;
	flex: 1 1 300px;
	min-width: 0;
	max-width: 380px;
}

/* セクション見出し */
.ds-sechead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	border-bottom: 2px solid var(--ds-ink);
	padding-bottom: 16px;
}
.ds-sechead__title {
	margin: 0;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.005em;
}
.ds-sechead__lead {
	margin: 8px 0 0;
	font-size: 13.5px;
	color: var(--ds-mute);
}
.ds-sechead__link {
	display: block;
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
	color: var(--ds-green-deep);
}
.ds-sechead__link:hover { opacity: .75; }

/* --- AI論文：カードグリッド --- */
.ds-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 36px;
	margin-top: 36px;
}
.ds-card { display: block; }
.ds-card:hover { opacity: .82; }
.ds-card__meta {
	margin-top: 16px;
	font-size: 11.5px;
	color: var(--ds-mute-2);
	letter-spacing: 0.05em;
}
.ds-card__title {
	margin: 10px 0 0;
	font-size: 17px;
	line-height: 1.62;
	font-weight: 500;
	text-wrap: pretty;
}

/* --- レポート：横並びリスト --- */
.ds-rows { margin-top: 8px; }
.ds-row {
	display: grid;
	grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
	gap: 32px;
	padding: 28px 0;
	border-bottom: 1px solid var(--ds-line);
	align-items: center;
}
.ds-row:hover { background: var(--ds-surface); }
.ds-row__meta {
	font-size: 11.5px;
	color: var(--ds-mute-2);
	letter-spacing: 0.05em;
}
.ds-row__title {
	margin: 10px 0 0;
	font-size: 20px;
	line-height: 1.55;
	font-weight: 500;
	text-wrap: pretty;
}
.ds-row__text {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.85;
	color: var(--ds-mute);
	max-width: 62ch;
}

/* --- ラボ --- */
.ds-lab {
	background: var(--ds-surface);
	padding: 48px;
}
.ds-lab__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
}
.ds-lab__eyebrow {
	font-family: var(--ds-en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ds-green-deep);
}
.ds-lab__title {
	margin: 10px 0 0;
	font-size: 24px;
	font-weight: 700;
}
.ds-lab__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 4px 44px;
	margin-top: 32px;
}
.ds-lab__item {
	display: block;
	padding: 22px 0;
	border-top: 1px solid var(--ds-line-2);
}
.ds-lab__item:hover { color: var(--ds-green-deep); }
.ds-lab__date {
	font-size: 11.5px;
	color: var(--ds-mute-2);
}
.ds-lab__itemTitle {
	margin: 8px 0 0;
	font-size: 16px;
	line-height: 1.6;
	font-weight: 500;
}

/* --- G検定・E資格 --- */
.ds-cert {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 28px;
	margin-top: 36px;
}
.ds-cert__item {
	display: block;
	border-left: 2px solid var(--ds-line);
	padding: 4px 0 4px 20px;
}
.ds-cert__item:hover { border-left-color: var(--ds-green); }
.ds-cert__date {
	font-size: 11.5px;
	color: var(--ds-mute-2);
}
.ds-cert__title {
	margin: 10px 0 0;
	font-size: 15.5px;
	line-height: 1.65;
	font-weight: 500;
}

/* ============================================================
   サイドバー（既存ウィジェットをデザインに寄せる）
   ============================================================ */

/* .ds-aside は flex + gap:56px なので、ウィジェット側の余白は打ち消す */
.ds-aside .widget { margin: 0; }

/* ウィジェット見出し（テーマ側の複数パターンを吸収）
   .l-sidebar は記事・アーカイブページのサイドバー。トップと見た目を揃える。 */
.ds-aside .widget h2,
.ds-aside .widget h3,
.ds-aside .widget h4,
.ds-aside .widget .heading,
.ds-aside .widget .widgettitle,
.ds-aside .widget .widget-title,
.l-sidebar .widget h2,
.l-sidebar .widget h3,
.l-sidebar .widget h4,
.l-sidebar .widget .heading,
.l-sidebar .widget .widgettitle,
.l-sidebar .widget .widget-title {
	margin: 0 0 0;
	padding: 0 0 12px;
	border-bottom: 2px solid var(--ds-ink);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--ds-ink);
	background: none;
	text-align: left;
	line-height: 1.5;
}
.ds-aside .widget h2::before,
.ds-aside .widget h3::before,
.ds-aside .widget h2::after,
.ds-aside .widget h3::after,
.l-sidebar .widget h2::before,
.l-sidebar .widget h3::before,
.l-sidebar .widget h2::after,
.l-sidebar .widget h3::after {
	content: none;
}

/* ウィジェット内リストを行区切りに */
.ds-aside .widget ul,
.l-sidebar .widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ds-aside .widget ul > li,
.l-sidebar .widget ul > li {
	list-style: none;
	padding: 16px 0;
	border-bottom: 1px solid var(--ds-line);
	font-size: 14px;
	line-height: 1.65;
}
.ds-aside .widget ul > li > ul > li:last-child,
.l-sidebar .widget ul > li > ul > li:last-child { border-bottom: 0; padding-bottom: 0; }
.ds-aside .widget a:hover,
.l-sidebar .widget a:hover { color: var(--ds-green-deep); }

/* タグクラウドはピル表示
   （テーマ側 .widget .tag-cloud-link が !important を使うため、こちらも !important で上書き） */
.ds-aside .tagcloud,
.l-sidebar .tagcloud {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
	margin-bottom: 0;
}
.ds-aside .tagcloud a,
.l-sidebar .tagcloud a {
	display: block;
	font-size: 12.5px !important;
	color: var(--ds-ink-2) !important;
	background: transparent !important;
	border: 1px solid var(--ds-line);
	border-radius: 0;
	padding: 6px 11px;
	margin: 0;
	line-height: 1.5;
}
.ds-aside .tagcloud a:hover,
.l-sidebar .tagcloud a:hover {
	border-color: var(--ds-green-deep);
	color: var(--ds-green-deep) !important;
	background: transparent !important;
}

/* AI講座プロモーション */
.ds-promo {
	background: var(--ds-ink);
	color: #ffffff;
	padding: 32px;
}
.ds-promo__eyebrow {
	font-family: var(--ds-en);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ds-green-lite);
	display: block;
}
.ds-promo__title {
	margin: 14px 0 0;
	font-size: 20px;
	line-height: 1.5;
	font-weight: 700;
}
.ds-promo__text {
	margin: 14px 0 0;
	font-size: 13.5px;
	line-height: 1.85;
	color: var(--ds-on-dark-3);
}
.ds-promo__btn {
	display: block;
	margin-top: 22px;
	background: #ffffff;
	color: var(--ds-ink);
	text-align: center;
	font-size: 13.5px;
	font-weight: 500;
	padding: 13px 16px;
}
.ds-promo__btn:hover {
	background: var(--ds-green);
	color: var(--ds-ink);
}

/* 管理画面「トップ」ウィジェットエリア */
.ds-topwidget { margin-top: 40px; }
.ds-topwidget .widget { margin: 0 0 24px; }

/* ページネーション（2ページ目以降） */
.ds-pagination { margin-top: 48px; }

/* ============================================================
   OUR WORK
   ============================================================ */

.ds-work {
	background: var(--ds-surface);
	border-top: 1px solid var(--ds-line);
}
.ds-work__inner {
	padding-top: 72px;
	padding-bottom: 72px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 64px;
	align-items: start;
}
.ds-work__eyebrow {
	font-family: var(--ds-en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ds-green-deep);
}
.ds-work__title {
	margin: 14px 0 0;
	font-size: 27px;
	line-height: 1.5;
	font-weight: 700;
}
.ds-work__text {
	margin: 16px 0 0;
	font-size: 14px;
	line-height: 1.9;
	color: var(--ds-ink-2);
}
.ds-work__link {
	display: inline-block;
	margin-top: 22px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--ds-green-deep);
	border-bottom: 1px solid var(--ds-green-deep);
	padding-bottom: 3px;
}
.ds-work__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 28px;
}
.ds-workcard {
	display: block;
	background: #ffffff;
	border: 1px solid var(--ds-line);
	padding: 28px;
}
.ds-workcard:hover { border-color: var(--ds-ink); }
.ds-workcard__eyebrow {
	font-family: var(--ds-en);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: var(--ds-mute-2);
}
.ds-workcard__title {
	margin: 12px 0 0;
	font-size: 17px;
	line-height: 1.55;
	font-weight: 700;
}
.ds-workcard__text {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: var(--ds-mute);
}

/* ============================================================
   フッター
   ============================================================ */

.ds-footer {
	background: var(--ds-ink);
	color: #ffffff;
}
.ds-footer__inner {
	padding-top: 72px;
	padding-bottom: 40px;
}
.ds-footer__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 40px 56px;
}
.ds-footer__brandRow {
	display: flex;
	align-items: baseline;
	gap: 11px;
}
.ds-footer__brandName {
	font-family: var(--ds-en);
	font-weight: 700;
	font-size: 22px;
}
.ds-footer__brandMark {
	width: 6px;
	height: 6px;
	background: var(--ds-green);
	transform: translateY(-3px);
	flex: 0 0 auto;
}
.ds-footer__brandSub {
	font-size: 11px;
	letter-spacing: 0.14em;
	color: var(--ds-mute-2);
}
.ds-footer__brandText {
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.9;
	color: var(--ds-on-dark-2);
	/* max-width:34ch はグリッド1列(268px)より狭く、折り返しを不必要に早めていたため解除 */
}

/* 日本語の改行位置の調整
   - line-break:strict … 句読点・小書き文字の禁則処理を厳密に
   - word-break:auto-phrase … 文節単位で折り返す（Chromium 119+。非対応ブラウザは無視）
   - .ds-nb … 途中で切れると読みにくい語句を inline-block でひとまとまりにする
     （auto-phrase 非対応ブラウザ向けの確実な手当て） */
.ds-footer__brandText,
.ds-footer__disclaimer,
.ds-footer__copy {
	line-break: strict;
	word-break: auto-phrase;
}
.ds-nb { display: inline-block; }
.ds-footer__colTitle {
	margin: 0 0 16px;
	font-size: 12px;
	letter-spacing: 0.12em;
	color: var(--ds-green-lite);
	font-weight: 600;
}
.ds-footer__links {
	display: flex;
	flex-direction: column;
	gap: 11px;
	font-size: 13.5px;
	color: var(--ds-on-dark);
}
.ds-footer__links a:hover { color: var(--ds-green-lite); }

/* ウィジェットをフッター内に出す場合の最低限の調整 */
.ds-footer__widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 40px 56px;
	margin-top: 48px;
}
.ds-footer__widgets .widget h2,
.ds-footer__widgets .widget h3,
.ds-footer__widgets .widget h4 {
	margin: 0 0 16px;
	font-size: 12px;
	letter-spacing: 0.12em;
	color: var(--ds-green-lite);
	font-weight: 600;
	background: none;
	border: 0;
	padding: 0;
}
.ds-footer__widgets .widget ul { list-style: none; margin: 0; padding: 0; }
.ds-footer__widgets .widget li {
	list-style: none;
	font-size: 13.5px;
	color: var(--ds-on-dark);
	padding: 5.5px 0;
}
.ds-footer__widgets .widget a:hover { color: var(--ds-green-lite); }

.ds-footer__bottom {
	margin-top: 56px;
	padding-top: 28px;
	border-top: 1px solid var(--ds-line-dark);
}
.ds-footer__disclaimer {
	margin: 0;
	font-size: 10.5px;
	line-height: 1.95;
	color: var(--ds-mute);
	text-wrap: pretty;
	/* 上のリンクカラムと同じく shell の右端（運営情報カラムの右端）まで使う */
}
/* 管理画面のコピーライト設定に免責文が含まれる場合、この要素が長文になる。
   その場合でも読めるよう行間と行長を確保しておく。 */
.ds-footer__copy {
	margin: 18px 0 0;
	font-size: 11.5px;
	line-height: 1.9;
	color: var(--ds-mute);
	text-wrap: pretty;
	/* 上のリンクカラムと同じく shell の右端（運営情報カラムの右端）まで使う */
}
.ds-footer__bottom > .ds-footer__copy:first-child { margin-top: 0; }
/* 管理画面の設定値に含まれる <p> / <div> にも同じ組版を適用する */
.ds-footer__copy p,
.ds-footer__copy div {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}
.ds-footer__copy p + p { margin-top: 10px; }
.ds-footer__copy a {
	color: var(--ds-on-dark-2);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.ds-footer__copy a:hover { color: var(--ds-green-lite); }

.ds-footer__sns {
	display: flex;
	gap: 18px;
	margin: 18px 0 0;
	font-size: 16px;
	color: var(--ds-on-dark-2);
}
.ds-footer__sns a:hover { color: var(--ds-green-lite); }

.ds-pagetop {
	display: inline-block;
	margin-bottom: 32px;
	font-family: var(--ds-en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: var(--ds-mute);
}
.ds-pagetop:hover { color: var(--ds-green-lite); }

/* ============================================================
   レスポンシブ
   ============================================================ */

@media only screen and (max-width: 1080px) {
	.ds-layout { gap: 48px; }
	.ds-aside { position: static; max-width: none; }
}

@media only screen and (max-width: 900px) {
	:root { --ds-gutter: 24px; }

	.ds-gnav { display: none; }
	.ds-burger { display: block; }
	.ds-search-trigger { display: none; }
	.ds-header__inner { min-height: 68px; flex-wrap: nowrap; }
	.ds-cta { padding: 10px 14px; font-size: 12px; }

	.ds-featured { padding-top: 40px; }
	.ds-featured__body { gap: 40px; }
	.ds-layout { padding-top: 48px; }
	.ds-main { gap: 56px; }
	.ds-top { padding-bottom: 64px; }
	.ds-work__inner { padding-top: 48px; padding-bottom: 48px; gap: 40px; }
	.ds-lab { padding: 32px 24px; }
}

@media only screen and (max-width: 640px) {
	:root { --ds-gutter: 20px; }

	.ds-logo__name { font-size: 21px; }
	.ds-logo__sub { display: none; }

	.ds-sectionbar { gap: 12px; margin-bottom: 24px; }
	.ds-sectionbar__meta { display: none; }

	.ds-lead__meta { margin-top: 18px; gap: 10px; }
	.ds-lead__text { font-size: 14.5px; line-height: 1.9; }

	.ds-sublist__item { grid-template-columns: 1fr 120px; gap: 14px; padding: 18px 0; }
	.ds-sublist__title { font-size: 15px; }

	.ds-sechead { flex-direction: column; align-items: flex-start; gap: 12px; }
	.ds-sechead__title { font-size: 21px; }

	.ds-cards { gap: 28px; grid-template-columns: 1fr; }

	.ds-row { grid-template-columns: 1fr; gap: 16px; padding: 22px 0; }
	.ds-row__title { font-size: 17px; }
	.ds-row__text { display: none; }

	.ds-lab__head { flex-direction: column; align-items: flex-start; gap: 12px; }
	.ds-lab__list { grid-template-columns: 1fr; }

	.ds-cert { grid-template-columns: 1fr; gap: 20px; }

	.ds-work__inner { grid-template-columns: 1fr; }
	.ds-work__cards { grid-template-columns: 1fr; }
	.ds-work__title { font-size: 22px; }

	.ds-footer__inner { padding-top: 48px; }
	.ds-footer__cols { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
	.ds-footer__bottom { margin-top: 40px; }
}


/* ============================================================
   記事ページ（single）の調整

   このファイルは style.css / css/content.css / css/icon.css より後に
   読み込まれるため、テーマ本体を編集せずここで上書きしている。
   ============================================================ */

/* --- 1. アイコンフォント（icomoon）の文字化け対策 -------------
   style.css:2879 で icon-tag / icon-calendar には対策済みだが、
   記事ページで使う icon-folder が漏れていた。あわせて icon-tag は
   フォルダ形のSVGが当たっていたためタグ形に差し替える。 */
.dateList__item.icon-folder::before {
	display: inline-block !important;
	width: 1em;
	height: 1em;
	margin-right: 6px;
	vertical-align: -0.12em;
	content: "" !important;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 4l2 2h8c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h6z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 4l2 2h8c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h6z'/%3E%3C/svg%3E");
}
.dateList__item.icon-tag::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M11 2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 .59 1.41l9 9a2 2 0 0 0 2.82 0l7-7a2 2 0 0 0 0-2.82l-9-9A2 2 0 0 0 11 2zM6.5 5A1.5 1.5 0 1 0 6.5 8 1.5 1.5 0 0 0 6.5 5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M11 2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 .59 1.41l9 9a2 2 0 0 0 2.82 0l7-7a2 2 0 0 0 0-2.82l-9-9A2 2 0 0 0 11 2zM6.5 5A1.5 1.5 0 1 0 6.5 8 1.5 1.5 0 0 0 6.5 5z'/%3E%3C/svg%3E");
}

/* 引用符も icomoon 依存（content.css:214）だったので通常フォントに置き換える */
.content blockquote::before {
	font-family: var(--ds-en), Georgia, serif;
	content: "\201C";
	top: 4px;
	font-size: 4.2rem;
	line-height: 1;
	color: #D9D9D9;
}

/* --- 2. 画像の縦横比 -----------------------------------------
   style.css:33 の img{max-width:100%} に height:auto が無く、
   size-* クラスの付かない画像が縦に潰れていた。 */
.content img,
.content video,
.content iframe {
	height: auto;
}

/* --- 3. コードを等幅フォントに -------------------------------
   content.css:117 の pre がゴシック体指定で桁が揃わなかった。
   文字色 #7F7F7F / 背景 #F2F2F2 はコントラスト比 約3.0:1 で
   WCAG AA(4.5:1) を満たさないため本文色に変更する。 */
.content pre,
.content code,
.content kbd,
.content samp {
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
		"Liberation Mono", "Courier New", "Noto Sans Mono CJK JP", monospace;
	font-feature-settings: normal;
}
.content pre {
	color: var(--ds-ink-2);
	background-color: var(--ds-surface);
	border-left: solid 4px var(--ds-green);
	line-height: 1.7;
	tab-size: 4;
	-moz-tab-size: 4;
}
/* pre の外にあるインラインコードだけチップ表示にする */
.content :not(pre) > code {
	background: var(--ds-surface);
	border: 1px solid var(--ds-line);
	padding: 0.15em 0.4em;
	font-size: 0.92em;
	color: var(--ds-ink-2);
	word-break: break-word;
}

/* --- 4. 表 ---------------------------------------------------
   配色を新パレットに合わせ、狭い画面では横スクロールさせる。 */
.content table {
	border-color: var(--ds-line);
}
.content table th {
	background: var(--ds-ink);
	border-color: var(--ds-line);
}
.content table td {
	border-color: var(--ds-line);
}
.content table tr:nth-child(2n+1) {
	background: var(--ds-surface);
}
@media only screen and (max-width: 767px) {
	/* content.css:136 は width:100% のみで、列の多い表がレイアウトを崩していた */
	.content table {
		display: block;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* --- 5 + 6. リンクとアクセント色 ------------------------------
   旧アクセント #f0b200（琥珀）を新パレットのグリーンへ。
   あわせて :hover の font-weight:bold（content.css:23）をやめる。
   ホバーのたびに文字幅が変わり行が揺れていたため。 */
.content a {
	color: var(--ds-green-deep);
	border-bottom: 1px solid rgba(92, 132, 25, 0.35);
}
.content a:hover {
	font-weight: inherit;
	color: var(--ds-ink);
	border-bottom: 1px solid var(--ds-ink);
}
/* 画像リンクと目次リンクには下線を出さない
   （:hover 側は詳細度が上がるので個別に打ち消す） */
.content a:has(> img),
.content .wp-caption a,
.content .outline__link {
	border-bottom: 0;
}
.content a:has(> img):hover,
.content .wp-caption a:hover,
.content .outline__link:hover {
	border-bottom: 0;
}

/* 記事メタ（日付・カテゴリ・タグ） */
.dateList__item a[rel="tag"]:hover,
.dateList__item a[rel="category"]:hover {
	color: var(--ds-green-deep);
}

/* ボタン類（プロフィール・関連記事・コメント） */
.btn__link,
.comment-respond .submit,
.comments__list .comment-reply-link {
	border-color: var(--ds-green-deep);
	color: var(--ds-green-deep);
}
.btn__link:hover,
.comment-respond .submit:hover,
.comments__list .comment-reply-link:hover {
	color: #ffffff !important;
	background: var(--ds-green-deep);
}

/* 関連記事・CTA・コメント */
.related__title,
.related__title a {
	color: var(--ds-green-deep);
}
.ctaPost__btn {
	background: var(--ds-green-deep);
	border-color: var(--ds-green-deep);
}
.ctaPost__btn:hover {
	color: var(--ds-green-deep);
}
.comments__list .comment-meta {
	background: var(--ds-ink);
}

/* 見出し（アーカイブ・トップウィジェットエリアでも使用） */
.heading.heading-first {
	border-bottom-color: var(--ds-green);
}
.heading.heading-primary .heading__bg {
	background: var(--ds-green-deep);
}

/* ============================================================
   Bootstrap CDN の a:hover を打ち消す

   header.php で読み込んでいる Bootstrap 4.3.1 の Reboot に
     a:hover { color: #0056b3; text-decoration: underline; }
   があり、テーマ側に a:hover の指定が無いためこれが効いてしまう。
   カード全体が1つの <a> のため、下線が中の要素すべてに伝播していた。

   打ち消しには :where() を使い、詳細度を a:hover と同じ (0,1,1) に
   保っている。ここを .ds-top a:hover (0,2,1) にすると、
   .ds-cta:hover や .ds-pill:hover (0,2,0) を巻き込んで壊すため。
   ============================================================ */

a:hover { text-decoration: none; }

:where(.ds-header, .ds-top, .ds-work, .ds-footer) a:hover {
	color: inherit;
	text-decoration: none;
}

/* 上の color:inherit (0,1,1) はベース指定 (0,1,0) を上回るため、
   ホバー時も色を保ちたいリンクは :hover を明示しておく */
.ds-sechead__link:hover {
	color: var(--ds-green-deep);
	opacity: .75;
}
.ds-work__link:hover {
	color: var(--ds-green-deep);
}
.ds-footer__copy a:hover {
	text-decoration: underline;
}
