@charset "UTF-8";
/* ==========================================================================
   かいごのヒカリ 一覧系ページ専用CSS（トップ・カテゴリー・タグ）
   --------------------------------------------------------------------------
   front-page.php / archive.php とその parts/front/ だけに効く。
   functions.php でトップとアーカイブのときにしか読み込まないので、
   記事ページには一切影響しない。

   色と角丸は style.css の --kh-* をそのまま借りている。
   ここで色を作らないこと。全体の色を変えるときは style.css 側を直す。

   #content の幅制限（l-container・最大1050px）を抜けたいセクションには
   .kh-front__bleed を付ける。

   注意: SWELLは body_class() を <body> ではなく #body_wrap に出力する。
   ページ種別で絞るときは body.home ではなく #body_wrap.home と書くこと。
   ========================================================================== */

/* --------------------------------------------------------------------------
   全幅セクション
   #content の外まで広げる。100vw はスクロールバーの分だけ画面より広いので、
   横スクロールが出ないよう body_wrap 側で切っておく。
   overflow: clip は hidden と違ってスクロール領域を作らないため、
   固定ヘッダーや sticky の挙動を壊さない。
   -------------------------------------------------------------------------- */
#body_wrap.home,
#body_wrap.archive {
	overflow-x: clip;
}

/* 画面の実寸。100vw はスクロールバーを含むので、assets/header.js が測って
   渡す --kh-sbw を引く。角を大きく丸めたパネルは、この補正が無いと
   左右の丸みが画面の外で切り落とされる。JSが動く前でも崩れないよう既定は0。 */
:root {
	--kh-vw: calc(100vw - var(--kh-sbw, 0px));
}

/* 白い面がピックアップの緑面へ乗り上げる深さ。
   ピックアップの下パディングはこの分を含んだ値にしてある。

   角の丸みと同じ値でなければならない。白い面の丸みが終わる前に
   緑が尽きると、左右の端に緑の角が三角に残って、その底が
   横一直線に切れる。丸みを変えたときに一緒に動くよう変数を参照させている。

   置き場所は :root ではなく body。--kh-panel-radius は style.css が
   body に宣言しているので、:root ではこの var() が解決できない。
   解決できないまま padding の calc() に入ると、padding の指定が
   まるごと無効になって上下の余白が消える（実際に一度そうなった）。 */
body {
	--kh-panel-lap: var(--kh-panel-radius);

	/* 白い面の上下の余白。1つ目の見出しの上と、最後のセクションの下に
	   同じだけ入る。片方だけ動かすと天地がそろわないので、必ずこの1つで変える。 */
	--kh-panel-pad: 120px;
}

.kh-front__bleed {
	margin-left: calc(50% - var(--kh-vw) / 2);
	margin-right: calc(50% - var(--kh-vw) / 2);
	padding-left: calc(var(--kh-vw) / 2 - 50%);
	padding-right: calc(var(--kh-vw) / 2 - 50%);
}

/* カテゴリーと新着記事を載せる白い帯。
   地色（--kh-bg の淡い緑）の上に全幅の白を敷く。2つのセクションを
   1枚の面にまとめているのは、あいだで地色が覗くのを避けるため。
   左右のパディングは .kh-front__bleed が器の幅に戻すために持っている。
   四隅を大きく丸めて、地色の上に置いた1枚の紙として見せる。
   これをやらないと、白と地色の境目が画面を横切る直線になる。 */
.kh-front__white {
	position: relative;
	z-index: 1;
	margin-top: 80px;
	padding-top: var(--kh-panel-pad);
	padding-bottom: var(--kh-panel-pad);
	border-radius: var(--kh-panel-radius);
	background: var(--kh-card);
}

/* ピックアップの真下に来たときだけ、その緑面へ乗り上げさせる。
   BASE U と同じで、次の面が丸めた上端で前の面を隠しながらせり上がると、
   継ぎ目が直線ではなく、緑の肩が白の両脇に残るかたちになる。
   乗り上げる分（--kh-panel-lap）はピックアップ側の下パディングに
   足し込んであるので、カルーセルの矢印とドットは白に隠れない。
   2ページ目以降はピックアップが出ないため、この規則は当たらず
   上の80pxがそのまま効く。 */
.kh-pickup + .kh-front__white {
	margin-top: calc(var(--kh-panel-lap) * -1);
}

/* 帯の上下パディングで余白は足りているので、中の1つ目の見出しは詰める */
.kh-front__white > .kh-section:first-child {
	margin-top: 0;
}

/* トップは1カラム（サイドバーは functions.php のフィルタで消してある）。
   一覧はサイドバー付きの2カラムだが、器の扱いは同じ。
   style.css は記事ページ用に .l-mainContent__inner を白いカードにしているが、
   ここは中のカードが白いので器の枠と余白を落とす。
   （style.css 側の #body_wrap.home / .archive ルールは背景と余白しか
   消しておらず、黒い枠線が残るため、ここで打ち消している） */
.kh-front .l-mainContent__inner,
.kh-archive .l-mainContent__inner {
	max-width: none;
	border: 0;
	border-radius: 0;
	padding: 0;
}

/* --------------------------------------------------------------------------
   セクションの器
   -------------------------------------------------------------------------- */
.kh-section {
	margin-top: 56px;
}

/* セクションの見出しは、記事下の資料ダウンロード・SNSと同じ .kh-secHead を使う。
   文字の大きさと行の組みは style.css が持っているので、ここでは向きだけ直す。
   style.css の既定は中央寄せ（SNSの色面がそれ）。トップは下にカードが
   左端から並ぶので、3行とも左にそろえないと行の頭の位置が食い違う。 */
.kh-section .kh-secHead {
	text-align: left;
}

/* 記事本文のH2と同じ組み方。グレーの帯に左端の色バー。
   帯の色は style.css の --kh-head-band で記事のH2と共通にしてある。
   バーだけ --kh-green-soft（#3F9B6B）にして、記事のH2（--kh-green）と
   持ち場を分けている。本文の見出しではなく、ページの区切りだと分かる。 */
.kh-section__title {
	position: relative;
	margin: 0 0 32px;
	padding: 20px 24px;
	background: var(--kh-head-band);
	font-family: var(--kh-font-heading);
	font-weight: var(--kh-weight-heading);
	font-size: 20px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	font-feature-settings: "palt" 1;
	color: var(--kh-ink);
}

/* 左端に立てる色バー。帯の高さいっぱいに通す */
.kh-section__title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 6px;
	height: 100%;
	border-radius: 6px;
	background: var(--kh-green-soft);
}

.kh-empty {
	padding: 40px 0;
	color: var(--kh-muted);
	text-align: center;
}

/* --------------------------------------------------------------------------
   ヒーロー（二カラムのステートメント）
   --------------------------------------------------------------------------
   下敷き: SmartHR Mag.（https://mag.smarthr.jp/）のステートメント枠。
   借りたのは「左に字間を空けた大きなタグライン2行・右に説明文」の1点だけで、
   色と文字は --kh-* のまま。写真もカルーセルも置かない。

   地色（--kh-bg）のまま。自前の淡い緑（--kh-green-pale）を敷いていたが、
   地色とほとんど同じ明るさなので、ヒーローの下端・おすすめの記事の見出しの
   まわり・カルーセルの下に、似た色の帯が細く何本も並んで見えた。
   トップの面はこの3つだけにそろえる。
       地色（ヒーローと、面と面のあいだ）
       濃い緑（おすすめの記事）
       白（カテゴリーと新着記事）

   ■ 高さを増やさないこと
   このすぐ下がピックアップの緑面で、そこが実質の見せ場。ここで画面を埋めると、
   スクロールしないと記事が1本も見えなくなる。上下のパディングは控えめにする。

   ■ 全幅にしない
   #content の器（最大1240px）の中に収める。.kh-front__bleed は付けない。
   文字だけの枠なので、画面いっぱいに広げると1行が長くなりすぎて読みにくい。
   -------------------------------------------------------------------------- */
.kh-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	column-gap: 64px;

	/* 上下の余白。文字しか置かない枠なので、高さはこの2つで決まる。
	   上にはSWELLの .l-content が持つ 4em（64px）が別に乗るので、
	   ヘッダーからの実際の空きは 64px + ここの値。
	   下にはピックアップ自身の margin-top 80px が乗る。 */
	padding-top: 104px;
	padding-bottom: 116px;
}

/* タグラインと説明文の大きさは 2:1（40px と 20px）。
   下敷きのSmartHR Mag.がこの比で、説明文の行送りが2.0ある。
   説明文を16pxまで落とすと差が2.6倍に開いて、タグラインだけが浮いて見えた。
   片方を動かすときは、もう片方も一緒に動かすこと。 */

/* タグライン。字間を広く取るのがこの枠の見た目のほとんど。 */
.kh-hero__title {
	margin: 0;
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: clamp(30px, 2.8vw, 40px);
	line-height: 1.5;
	letter-spacing: 0.14em;
	color: var(--kh-ink);
}

/* 1行＝1つ。ここで折った通りに出す。 */
.kh-hero__title span {
	display: block;
}

.kh-hero__lead > p {
	margin: 0;
}

/* 段落のあいだ。1行ぶんより狭く、行間より広く取る。
   同じだけ空けると、段落の切れ目なのか行が変わっただけなのか見分けがつかない。 */
.kh-hero__lead > p + p {
	margin-top: 1.1em;
}

.kh-hero__lead {
	margin: 0;
	max-width: 26em;
	font-size: 20px;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--kh-ink);

	/* 1行目の頭をタグラインとそろえるため、上の余白は足さない。
	   行の高さはタグラインが 40px×1.5、説明文が 20px×2 で、どちらも
	   文字の上下に (60-40)/2 = (40-20)/2 = 10px ずつ空く。同じ量なので、
	   何も足さなければ文字の上端がそろう。
	   以前はここに行の高さの差の半分（10px）を足して行の中心を合わせていたが、
	   目が見ているのは中心ではなく1行目の頭なので、右だけ10px下がって見えた。 */
	padding-top: 0;
}

/* 1024px未満は1カラムに落とす。
   タグラインは字間を0.14em空けているので、全角12文字で最小の30pxでも
   410pxいる。二カラムのままだと左の列が先に足りなくなり、
   「介護の現場の困りごと／を、」と1文字だけ次の行に落ちる。
   1024pxでの左の列は448pxで、ぎりぎり足りる幅。 */
@media (max-width: 1023px) {
	.kh-hero {
		grid-template-columns: 1fr;
		row-gap: 18px;
		padding-top: 56px;
		padding-bottom: 68px;
	}

	/* タグラインと説明文の比は1カラムでも2:1のまま保つ。
	   両方をclamp（8.4vw と 4.2vw）で動かしているので、画面幅が変わっても
	   比が崩れない。476px以上では上限に当たって、PCと同じ 40px / 20px になる。
	   以前は 24px / 17px（1.4倍）まで縮んでいて、スマホだけ差が浅く、
	   タグラインが見出しに見えなかった。 */
	.kh-hero__title {
		font-size: clamp(30px, 8.4vw, 40px);
		line-height: 1.6;
		letter-spacing: 0.1em;
	}

	.kh-hero__lead {
		font-size: clamp(16px, 4.2vw, 20px);
		line-height: 1.95;
		padding-top: 0;
	}
}

/* スマホは説明文を16pxで固定する。
   768〜1023pxのタブレットは上のclampのまま（最大20px）。 */
@media (max-width: 767px) {
	.kh-hero {
		padding-top: 40px;
		padding-bottom: 48px;
	}

	.kh-hero__lead {
		font-size: 16px;
	}
}

/* --------------------------------------------------------------------------
   ピックアップ（中央拡大カルーセル）
   --------------------------------------------------------------------------
   下敷き: BASE U（https://baseu.jp/）のファーストビュー直下の枠。
   借りたのは「全幅の色面・上の大きな角丸・縁に乗る見出し・中央拡大の
   カルーセル」の4点で、色は --kh-* に置き換えている。

   ■ 見え方
   3枚をしっかり見せて、その外側の4枚目・5枚目を端から少し覗かせる。
   中央の1枚だけ大きく、左右の2枚は一段小さい。

       ‹ 覗き ›  ‹ 小 ›  ‹‹ 大 ››  ‹ 小 ›  ‹ 覗き ›

   ■ 寸法はすべてvw
   BASE Uが1920px幅のvwで組んでいるのと同じ考え方。画面が広くても狭くても
   同じ比率で並ぶので、「3枚＋両端の覗き」が崩れない。pxで書くと、
   画面幅が変わったときに覗きが消えたり4枚目が丸ごと出たりする。

       カードの持ち場      width   = 36vw   … 中央のカードの幅でもある
       左右の隙間          padding = 0.8vw  … カードとカードの間は1.6vw
       左右のカード        width   = 23vw   … 中央の 0.64 倍
       4枚目・5枚目の寄せ  right   = -11.4vw

   中央と左右の差をもっとつけたいなら 23vw を下げる。中央そのものを
   大きくしたいなら 36vw を上げるが、上げた分だけ端の覗きが減るので、
   寄せの 11.4vw も一緒に増やすこと（覗き = 50vw - 1.5 * 37.6vw + 11.4vw）。
   -------------------------------------------------------------------------- */

/* 全幅の色面。
   .kh-front__bleed は器の幅に戻すための左右パディングを持っているので使わない。
   カルーセルは画面の端まで流したいので、パディングなしで100vwに広げる。
   横スクロールは #body_wrap.home の overflow-x: clip で止めている。 */
.kh-pickup {
	position: relative;
	margin: 80px calc(50% - var(--kh-vw) / 2) 0;
	width: var(--kh-vw);
	padding: 104px 0 calc(112px + var(--kh-panel-lap));
	border-radius: var(--kh-panel-radius) var(--kh-panel-radius) 0 0;
	background: var(--kh-green-soft);
}

/* 見出しの上に置く英字。読ませる情報ではなく飾り。
   記事ページの小見出し（style.css の .kh-secHead__lead、Follow / Download）と
   同じ作りにそろえてある。あちらは白地なので緑、ここは緑地なので白で抜く。
   濃さを少し落として、日本語の見出しより前に出ないようにしている。 */
.kh-pickup__lead {
	margin: 0 0 6px;
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: 13px;
	letter-spacing: 0.08em;
	color: #fff;
	opacity: 0.75;
	text-align: center;
}

/* 見出しは色面の中に白で置く。
   BASE Uは英字を面の上端にまたがらせているが、ここは日本語なので
   同じことをすると読めなくなる（英字は文字の下に余白があるので潜らせても
   読めるが、日本語は画が下いっぱいまで詰まっていて、面の切り口が画を
   またいで切ってしまう）。色面の内側に入れて白く抜いた。

   書体は記事の外側の決まりどおり丸ゴシック（--kh-font-ui）。
   この書体はウェイト500しか読み込んでいないので、太さは触らないこと
   （700を指定するとブラウザが偽の太字を作って輪郭が濁る）。 */
.kh-pickup__title {
	margin: 0 0 48px;
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: 36px;
	line-height: 1.5;
	letter-spacing: 0.04em;
	color: #fff;
	text-align: center;
}

/* 器の高さ。中央のカードが一番高くなるので、その高さを
   assets/pickup.js が測って --kh-pickup-h に入れる。
   JSが動かなかったときの保険として既定値を置いてある。 */
/* カルーセルと矢印の器。矢印はこの高さの上下中央に置く。
   .kh-pickup__swiper 自身は overflow: hidden なので、中に矢印を入れると
   はみ出した分が切られる。1枚外に器を用意して、そこに絶対配置している。 */
.kh-pickup__stage {
	position: relative;
}

.kh-pickup__swiper {
	width: 100%;
	height: var(--kh-pickup-h, 520px);
}

/* 高さを測っている一瞬だけ、全カードを「中央に来たとき」の姿にする。
   この間は動かさない（測り終わるまでの一瞬が見えてしまうため）。
   中央の姿は .swiper-slide-active と同じ指定を共有させている。
   片方だけ直すと、測った高さと実際の高さがずれて下に緑が空く。 */
.kh-pickup__swiper.is-measuring * {
	transition: none !important;
}

.kh-pickup__swiper.is-measuring .kh-pickup__inner {
	position: static;
	width: 100% !important;
	height: auto !important;
	transform: none;
}

/* カード1枚の持ち場。中身（.kh-pickup__inner）はこの幅の中で伸縮する。
   box-sizing: content-box にしているのは、左右の隙間を幅の外に出したいため
   （Swiperはこの合計をスライド1枚の幅として扱う）。 */
.kh-pickup .kh-pickup__card {
	position: relative;
	box-sizing: content-box;
	width: 36vw;
	padding: 0 0.8vw;
	transition: all 0.3s;
}

/* 白いカード。上下中央から拡大させるので、中央基準で置く。
   この指定が中央に来たときの姿で、左右のカードは下で一段小さくしている。

   枠は黒（--kh-frame）ではなくページの地色（--kh-bg / #eff3ea）。
   ここは緑の色面の上なので、新着記事や一覧ページと同じ黒い枠で囲うと
   線だけが強く出て、中央の1枚を大きく見せる作りとぶつかる。
   白より一段だけ沈んだ線にして、カードの輪郭を残しつつ主張を落としている。 */
.kh-pickup .kh-pickup__inner {
	position: relative;
	top: 50%;
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 26px;
	border: 2px solid var(--kh-bg);
	border-radius: 16px;
	background: var(--kh-card);
	box-shadow: 0 2px 12px rgba(44, 51, 42, 0.12);
	transform: translateY(-50%);
	transition: width 0.3s, padding 0.3s;
	z-index: 0;
}

/* 左右の2枚。中央の0.64倍まで小さくして、主役をはっきりさせる */
.kh-pickup__card:not(.swiper-slide-active) .kh-pickup__inner {
	width: 23vw;
	padding: 16px;
}

/* 左右の2枚は中央のカードへ寄せる。中央との間は隙間2つ分だけ空く */
.kh-pickup__card.swiper-slide-prev .kh-pickup__inner {
	position: absolute;
	right: 0.8vw;
}

.kh-pickup__card.swiper-slide-next .kh-pickup__inner {
	position: absolute;
	left: 0.8vw;
}

/* 4枚目・5枚目。そのままでは画面の外に出てしまうので内側へ寄せて、
   端から少しだけ覗かせる（クラスは assets/pickup.js が付ける）。 */
.kh-pickup__card.prev-prev .kh-pickup__inner {
	position: absolute;
	right: -11.4vw;
}

.kh-pickup__card.next-next .kh-pickup__inner {
	position: absolute;
	left: -11.4vw;
}

/* サムネイル。BASE Uと同じ 548:288（ほぼ19:10）の横長 */
.kh-pickup__thumb {
	display: block;
	width: 100%;
	margin-bottom: 20px;
	aspect-ratio: 548 / 288;
	overflow: hidden;
	border-radius: 8px;
	transition: opacity var(--kh-hover-dur) var(--kh-hover-ease);
}

.kh-pickup__thumb:hover {
	opacity: 0.7;
}

.kh-pickup__img,
.kh-pickup__noimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-pickup__noimg {
	background: var(--kh-green-pale);
}

/* 文字側をひとつの箱にまとめてある。
   日付をカードの下端に貼り付けたいので、この箱を伸ばす。 */
.kh-pickup__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}

/* カテゴリー。トップの他のカードは黒いピルだが、ここは白いカードの中に
   文字だけで置く（ピルを重ねると中央のカードだけ賑やかになる）。
   左の小さな四角はタグの印。BASE Uはタグのアイコン画像を置いている。 */
.kh-pickup__cat {
	position: relative;
	display: block;
	padding-left: 18px;
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: 0.06em;
	color: #3F9B6B;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.kh-pickup__cat::before {
	content: "";
	position: absolute;
	top: 0.45em;
	left: 0;
	width: 10px;
	height: 10px;
	border: 2px solid var(--kh-green);
	border-radius: 2px;
}

.kh-pickup__ttlWrap {
	margin: 10px 0 12px;
}

/* タイトルは3行で打ち切る。4行目が出るとカードの高さが跳ねる */
.kh-pickup__ttl {
	display: -webkit-box;
	font-family: var(--kh-font-heading);
	font-weight: var(--kh-weight-heading);
	font-size: 19px;
	line-height: 1.6;
	color: var(--kh-ink);
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	transition: opacity var(--kh-hover-dur) var(--kh-hover-ease);
}

.kh-pickup__ttl:hover {
	color: var(--kh-ink);
	opacity: 0.7;
}

/* 左右のカードは文字も一段落とす。大きさだけでなく字の詰まり方でも
   主役との差をつけるため。 */
.kh-pickup__card:not(.swiper-slide-active) .kh-pickup__ttl {
	font-size: 15px;
	-webkit-line-clamp: 2;
}

/* 抜粋は中央のカードだけに出す。
   左右のカードに出すと字だけの塊になって、主役が沈む。 */
.kh-pickup__excerpt {
	display: none;
	margin: 0 0 14px;
	font-size: 13px;
	line-height: 1.8;
	color: var(--kh-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.kh-pickup__card.swiper-slide-active .kh-pickup__excerpt,
.kh-pickup__swiper.is-measuring .kh-pickup__excerpt {
	display: -webkit-box;
}

.kh-pickup__date {
	margin-top: auto;
	font-size: 12px;
	color: var(--kh-muted);
	white-space: nowrap;
}

/* 矢印は中央のカードの左右の縁に、半分ずつまたがるように置く。
   中央カードは画面中央から左右に18vw（持ち場36vwの半分）なので、
   その位置を基準にして、自分の幅の半分だけ戻している。
   縁にまたがるのでカードの白と色面の緑の両方に乗る。白地に黒枠で、
   カードの白に重なる部分は枠線で輪郭が立ち、緑に重なる部分は白地が抜けて
   見える。枠の黒はカードの枠と同じ --kh-frame。 */
.kh-pickup__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 2px solid var(--kh-frame);
	border-radius: 999px;
	background: var(--kh-card) url(../chevron.svg) no-repeat center / 20px 20px;
	cursor: pointer;
	transform: translate(-50%, -50%);
	transition: opacity var(--kh-hover-dur) var(--kh-hover-ease),
		background-color var(--kh-hover-dur) var(--kh-hover-ease);
}

.kh-pickup__arrow.-prev {
	left: calc(50% - 18vw);
	transform: translate(-50%, -50%) scaleX(-1);
}

.kh-pickup__arrow.-next {
	left: calc(50% + 18vw);
}

.kh-pickup__arrow:hover {
	background-color: var(--kh-zebra);
}

.kh-pickup__arrow.swiper-button-disabled {
	opacity: 0.35;
	cursor: default;
}

/* 点だけを色面の下に残す */
.kh-pickup__ctrl {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 44px;
}

/* Swiperの既定は黒い点なので、白に置き換える。
   swiper.css が list.css より後に出力されるので、
   .swiper-pagination-bullets.swiper-pagination-horizontal の width:100% に
   負けないよう詳細度を1つ上げている（負けると点の枠が横いっぱいに広がって
   左右の矢印が画面の端まで押し出される）。 */
.kh-pickup .kh-pickup__ctrl .kh-pickup__dots {
	position: static;
	bottom: auto;
	left: auto;
	display: flex;
	justify-content: center;
	gap: 18px;
	width: fit-content;
	margin: 0;
	transform: none;
}

.kh-pickup .kh-pickup__ctrl .swiper-pagination-bullet {
	width: 14px;
	height: 14px;
	margin: 0;
	background: #fff;
	opacity: 0.45;
}

.kh-pickup .kh-pickup__ctrl .swiper-pagination-bullet-active {
	opacity: 1;
}

/* --------------------------------------------------------------------------
   スマホ（767px以下）
   3枚並べる幅がないので、中央1枚＋左右の覗きに落とす。
   矢印はPCと同じく中央カードの左右の縁に置く（指で送れない人のため）。
   画面が狭いので丸と点は一回り小さくする。
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.kh-pickup {
		margin-top: 56px;
		padding: 72px 0 calc(80px + var(--kh-panel-lap));
	}

	.kh-pickup__title {
		margin-bottom: 32px;
		font-size: 24px;
	}

	.kh-pickup__swiper {
		height: var(--kh-pickup-h, 460px);
	}

	.kh-pickup .kh-pickup__card {
		width: 76vw;
		padding: 0 2vw;
	}

	.kh-pickup .kh-pickup__inner {
		padding: 18px;
		border-radius: 12px;
	}

	.kh-pickup__card:not(.swiper-slide-active) .kh-pickup__inner {
		width: 62vw;
		padding: 14px;
	}

	.kh-pickup__card.swiper-slide-prev .kh-pickup__inner {
		right: 2vw;
	}

	.kh-pickup__card.swiper-slide-next .kh-pickup__inner {
		left: 2vw;
	}

	/* 画面が狭いと4枚目・5枚目を引き寄せる余地がないので通常の位置に戻す */
	.kh-pickup__card.prev-prev .kh-pickup__inner,
	.kh-pickup__card.next-next .kh-pickup__inner {
		position: relative;
		right: auto;
		left: auto;
	}

	.kh-pickup__thumb {
		margin-bottom: 16px;
	}

	.kh-pickup__ttl {
		font-size: 16px;
	}

	/* 抜粋は出さない。スマホは中央のカードも幅が狭く、
	   タイトルの下に本文が続くと1枚のカードが読み物になってしまう。
	   高さを測る一瞬（is-measuring）にも出さないよう、そちらも消す。
	   片方だけ残すと、測った高さの中に抜粋の分の空きができる。 */
	.kh-pickup__card.swiper-slide-active .kh-pickup__excerpt,
	.kh-pickup__swiper.is-measuring .kh-pickup__excerpt {
		display: none;
	}

	/* 中央カードは持ち場76vwから左右2vwを引いた72vw。
	   PCは縁（画面中央から36vw）に半分またがせているが、スマホは
	   カードが画面幅いっぱいに近く、またがせるとカード左上のカテゴリーに
	   丸が重なる。少しだけ外へずらして、縁に軽くかかる位置に置いている。 */
	.kh-pickup__arrow {
		width: 36px;
		height: 36px;
		border-width: 1.5px;
		background-size: 15px 15px;
	}

	.kh-pickup__arrow.-prev {
		left: calc(50% - 36vw - 8px);
	}

	.kh-pickup__arrow.-next {
		left: calc(50% + 36vw + 8px);
	}

	.kh-pickup__ctrl {
		margin-top: 28px;
	}

	.kh-pickup .kh-pickup__ctrl .kh-pickup__dots {
		gap: 10px;
	}

	.kh-pickup .kh-pickup__ctrl .swiper-pagination-bullet {
		width: 8px;
		height: 8px;
	}
}

/* --------------------------------------------------------------------------
   記事カードのグリッド
   -------------------------------------------------------------------------- */
.kh-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px;
}

/* 一覧ページ（archive.php）はサイドバーの左で2列。
   本文側は858pxなので、1枚が400px前後のゆったりしたカードになる */
.kh-grid.-cols2 {
	grid-template-columns: repeat(2, 1fr);
}

/* トップの新着記事は列数を固定して3列。
   自動折り返し（auto-fill）のままだと器の幅しだいで4列になり、
   1枚が細くなってタイトルが折り返しすぎるため。 */
.kh-grid.-cols3 {
	grid-template-columns: repeat(3, 1fr);
	/* 影が付いているぶん、既定の24pxだと隣の影と重なって窮屈に見える。
	   縦を横より広く取るのは、上下は影が伸びる向きだから。 */
	gap: 40px 32px;
}

/* タブレットは3列だと1枚が狭いので2列に落とす */
@media (max-width: 1024px) {
	.kh-grid.-cols3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* --------------------------------------------------------------------------
   記事カード
   -------------------------------------------------------------------------- */
/* 高さは行の中でそろえる。タイトルが1行の記事と2行の記事が隣り合っても
   カードの下端と日付の位置がずれないように、リンクから本文まで縦に伸ばし、
   日付だけを margin-top:auto で下端に貼り付ける。 */
.kh-card {
	display: flex;
	overflow: hidden;
	border: 2px solid var(--kh-frame);
	border-radius: var(--kh-radius);
	background: var(--kh-card);
	box-shadow: var(--kh-shadow);
	transition: transform var(--kh-hover-dur-move) var(--kh-hover-ease);
}

.kh-card:hover {
	transform: translateY(-3px);
}

.kh-card__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	color: inherit;
	text-decoration: none;
}

.kh-card__thumb {
	position: relative;
	flex: 0 0 auto;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--kh-zebra);
	border-bottom: 2px solid var(--kh-frame);
}

.kh-card__img,
.kh-card__noimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kh-card__noimg {
	background: var(--kh-green-pale);
}

/* 本文側の上の余白。カテゴリーのピル（style.css・高さ28px）が画像との境目に
   またがって14px食い込むので、その下にタイトルまで24pxあける。
   下敷き: クロスデザイナーの記事カード（ピル→タイトル→日付を広めに離す） */
.kh-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 40px 20px 24px;
}

/* カテゴリーのピルは style.css の .kh-card__cat（黒・画像の境目にまたがる）を
   そのまま使う。ここで別の見た目を作らない。 */

.kh-card__title {
	margin: 0 0 14px;
	font-family: var(--kh-font-heading);
	font-weight: var(--kh-weight-heading);
	font-size: 17px;
	line-height: 1.6;
	color: var(--kh-ink);
}

.kh-card__date {
	margin-top: auto;
	font-size: 12px;
	color: var(--kh-muted);
}

/* 大きいカードは横並び */
@media (min-width: 768px) {
	.kh-card.-lg .kh-card__link {
		display: grid;
		grid-template-columns: 5fr 4fr;
		align-items: stretch;
	}

	.kh-card.-lg .kh-card__thumb {
		aspect-ratio: auto;
		height: 100%;
		border-right: 2px solid var(--kh-frame);
		border-bottom: 0;
	}

	.kh-card.-lg .kh-card__body {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: 28px 30px;
	}

	.kh-card.-lg .kh-card__title {
		font-size: 22px;
	}

	/* 横並びカードは中央寄せなので、日付を下端に貼り付けない */
	.kh-card.-lg .kh-card__date {
		margin-top: 0;
	}
}

/* --------------------------------------------------------------------------
   新着記事の1本目（横長カード）
   --------------------------------------------------------------------------
   下敷き: サイボウズ式（cybozushiki.cybozu.co.jp）の最新記事。
   1本目だけ列をまたいで寝かせ、写真を左・文字を右に置く。
   同じ形のカードが3列で続く中に1枚だけ違う形が入るので、どれが一番新しいかが
   見出しを読まなくても分かる。

   作りは大きいカード（-lg）と同じだが、写真の比率と本文の頭を足す分だけ別に持つ。
   スマホ（767px以下）では縦積みのまま。横に寝かせると写真も文字も狭くなる。
   -------------------------------------------------------------------------- */

/* 3列の器をまたいで1行を占める */
.kh-grid > .kh-card.-wide {
	grid-column: 1 / -1;
}

/* 本文の頭。3行を超えたら切る。行数はカードの高さを写真の比率で決めたいので、
   文字数ではなく行数で止めている。 */
.kh-card__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.9;
	color: var(--kh-muted);
}

@media (min-width: 768px) {
	.kh-card.-wide .kh-card__link {
		display: grid;
		grid-template-columns: 5fr 4fr;
		align-items: stretch;
	}

	/* 写真は16:9のまま。高さを文字側に任せると、タイトルが1行の記事のときに
	   写真が横に細長くつぶれる。 */
	.kh-card.-wide .kh-card__thumb {
		aspect-ratio: 16 / 9;
		height: 100%;
		border-right: 2px solid var(--kh-frame);
		border-bottom: 0;
	}

	.kh-card.-wide .kh-card__body {
		justify-content: center;
		padding: 32px 36px;
	}

	/* 縦積みのカードでは、カテゴリーのピルを写真と本文の境目にまたがらせている
	   （style.css の .kh-card__cat が position:absolute）。横並びでは本文の上端が
	   カードの上端と同じ線なので、そのままだとピルの上半分が枠の外で切れる。
	   ここだけ流れの中に戻し、タイトルの上に置く。 */
	.kh-card.-wide .kh-card__cat {
		position: static;
		align-self: flex-start;
		transform: none;
		margin-bottom: 16px;
	}

	.kh-card.-wide .kh-card__title {
		margin-bottom: 16px;
		font-size: 24px;
	}

	/* 文字側は上下の中央にまとめるので、日付を下端に貼り付けない */
	.kh-card.-wide .kh-card__date {
		margin-top: 0;
	}
}

/* スマホは縦積み。写真の下に文字が来るので、ピルは境目にまたがったままでよい。
   本文の頭は出さない（タイトルと日付だけで足りるうえ、1枚が縦に伸びすぎる）。 */
@media (max-width: 767px) {
	.kh-card.-wide .kh-card__excerpt {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   トップの新着記事（parts/front/latest.php の .kh-latest）
   --------------------------------------------------------------------------
   白い面の上に白いカードが並ぶので、外枠を2pxで1周させて1枚ずつを切り出す。
   影は持たせない。内側の線（写真の下の区切り線・横長カードの写真と文字の
   間の縦線）はこの節の中だけ外し、カードを囲うのは外枠の1本だけにする。
   一覧ページ（archive.php）のカードも同じ黒い枠なので、見た目はそろう。 */
.kh-latest .kh-card {
	border: 2px solid var(--kh-frame);
	box-shadow: none;
}

.kh-latest .kh-card__thumb {
	border-bottom: 0;
}

@media (min-width: 768px) {
	.kh-latest .kh-card.-wide .kh-card__thumb {
		border-right: 0;
	}
}

/* --------------------------------------------------------------------------
   一覧ページの見出し（archive.php）
   「介護タクシーの記事」を、記事本文のH3と同じ形で1行出す。
   幅は左の記事カード側にそろえる（サイドバーの上までは伸ばさない）。
   作りは style.css の .post_content h3 と同じで、面は持たせず
   下に2pxの線を1本通すだけ。色は記事カードの枠と同じ黒（--kh-frame）。
   本文のH3は左端88pxだけ緑を乗せているが、ここでは全部黒で1本に通す。
   一覧は下に並ぶカードの枠がすでに黒なので、線の色をそろえたほうが
   見出しとカードがひと続きの面に見える。

   この見出しは <main> の中ではなく、本文側とサイドバーの兄弟として
   #content（.l-content）の直下に置いてある。
   .l-content は flex-wrap の横並びなので、width:100% の子をひとつ入れると
   そこだけ1行を占め、本文側とサイドバーがその下にそろって並ぶ。
   order で先頭に回すのは、記事下の .kh-postFoot（order:99）と同じやり方。
   見出しを <main> の中に戻すと、そのぶん記事カードだけが下がり、
   サイドバーの上端とずれる。
   -------------------------------------------------------------------------- */
.l-content > .kh-archiveHead {
	order: -1;
	width: 100%;
}

/* 帯の幅は左の記事カード側にそろえる。サイドバーの上まで伸ばさない。
   行そのものは width:100% のまま（そうしないと本文側と同じ行に収まって
   しまう）で、中身だけをサイドバーの手前で止める。
   SWELLが2カラムに組むのは960px以上。それ未満は1カラムなので幅は全部使う。 */
@media (min-width: 960px) {
	.l-content > .kh-archiveHead > * {
		max-width: calc(100% - var(--swl-sidebar_width) - var(--swl-sidebar_margin));
	}
}

/* 下の余白。見出しの線と記事カードの上辺が近いと、線がカードの
   飾りに見えてしまう。行がひとつ分空くくらいまで離す。 */
.kh-archiveHead {
	margin: 8px 0 52px;
}

/* 下の余白が線との距離になる。行の高さ1.65が文字の下に7pxほどの余りを
   作るので、見た目の間隔はこの数字より広い。詰めるときはここを動かす。 */
.kh-archiveHead__title {
	margin: 0;
	padding: 0 0 12px;
	border: none;
	border-radius: 0;
	background: none;
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: 23px;
	line-height: 1.65;
	letter-spacing: 0.02em;
	font-feature-settings: "palt" 1;
	color: var(--kh-ink);
	text-align: left;
	border-bottom: 2px solid var(--kh-frame);
}

/* 説明文は帯の外に置くので、帯とのあいだを空ける */
.kh-archiveHead__desc {
	margin: 16px 0 0;
	max-width: 720px;
	font-size: 14px;
	line-height: 1.9;
	color: var(--kh-ink);
}

.kh-archiveHead__desc p {
	margin: 0;
}

/* --------------------------------------------------------------------------
   カテゴリー／タグから探す
   下敷きはサイボウズ式の「おすすめのタグ」。名前を色のピルにして、
   横に流して折り返す。

   左がカテゴリー、右がタグの2列。札の見た目は両方そろえてあり、
   分けているのは見出しだけ。タグの数が増えても、折り返すだけで高さが伸びる。
   -------------------------------------------------------------------------- */
.kh-taxo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px 88px;
	align-items: start;
}

/* 列が1つだけのとき（タグが無いなど）は全幅に伸ばさず、左半分に置く。
   ピルは短いので、全幅に引き伸ばしても隙間が増えるだけになる。 */
.kh-taxo__col {
	min-width: 0;
}

/* 見出しは .kh-section__title を共有している。列の中では上の余白が
   要らないので、ここでは触らずセクション側の余白にまかせている。 */
.kh-taxo__list {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kh-taxo__item {
	margin: 0;
}

/* ピル。カテゴリーもタグも同じ線だけの札にしている。
   塗りつぶしにすると、白い面の上で緑が強く出すぎて、
   すぐ下の新着記事より先に目に入ってしまう。
   中で折り返すと札の形が崩れるので nowrap。
   書体はウェイト500しか読み込んでいないので太さは触らないこと。 */
.kh-taxo__pill {
	display: inline-block;
	padding: 6px 16px;
	border: 1px solid var(--kh-line);
	border-radius: 999px;
	background: transparent;
	color: var(--kh-ink);
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: 14px;
	line-height: 1.6;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--kh-hover-dur) var(--kh-hover-ease),
		border-color var(--kh-hover-dur) var(--kh-hover-ease),
		color var(--kh-hover-dur) var(--kh-hover-ease);
}

.kh-taxo__pill:hover {
	border-color: var(--kh-green-soft);
	background: var(--kh-green-soft);
	color: #fff;
}

/* --------------------------------------------------------------------------
   スマホ
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	/* 画面が狭いと80pxの角は丸すぎて、面の中身が角に食われる。
	   幅が狭いぶん同じ値でも丸みが目立つので、PCよりかなり浅くする。
	   乗り上げる深さは丸みを参照しているので、ここでは触らない。
	   上書き先は body。style.css が body に宣言しているので、
	   :root に書いても body 自身の宣言に負けて効かない。 */
	body {
		--kh-panel-radius: 32px;
		--kh-panel-pad: 72px;
	}

	.kh-section {
		margin-top: 40px;
	}

	.kh-section__title {
		margin-bottom: 24px;
		padding: 15px 16px;
		font-size: 17px;
	}

	.kh-section__title::before {
		width: 5px;
	}

	/* 2列に並べる幅がないので、カテゴリーの下にタグを置く */
	.kh-taxo {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.kh-taxo__list {
		gap: 12px;
	}

	.kh-taxo__pill {
		padding: 5px 14px;
		font-size: 13px;
	}

	.kh-front__white {
		margin-top: 56px;
	}

	.kh-pickup + .kh-front__white {
		margin-top: calc(var(--kh-panel-lap) * -1);
	}


	.kh-grid,
	.kh-grid.-cols2,
	.kh-grid.-cols3 {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.kh-archiveHead {
		margin-bottom: 36px;
	}

	.kh-archiveHead__title {
		font-size: 20px;
	}

	/* 1列に落ちるとカードが画面幅いっぱいまで広がり、17pxのタイトルが
	   間延びする。資料DLのカードと同じ16pxまで下げ、上のピルと下の日付も
	   同じ割合で詰める。3つの大小関係（日付 < ピル < タイトル）は変えない。 */
	.kh-card__title {
		font-size: 16px;
		margin-bottom: 12px;
	}

	.kh-card__cat {
		height: 26px;
		padding: 0 14px;
		font-size: 12px;
	}

	.kh-card__date {
		font-size: 11px;
	}

	.kh-card__body {
		padding: 34px 18px 20px;
	}
}



/* --------------------------------------------------------------------------
   一覧ページのサイドバー（カテゴリー・タグ）
   --------------------------------------------------------------------------
   記事ページのサイドバーは白いカードで組むが、一覧ページは本文側が
   記事カードの並びなので、右にもう一枚白い面を置くとカードが二重に見える。
   ここは地色の上に直に置き、見出しと中身だけで読ませる。

   見出しは記事本文のH2と同じ作り（グレーの帯＋左端に角丸の緑バー）にそろえる。
   SWELLの -side は下に半端な罫線を引くので、それは消す。
   -------------------------------------------------------------------------- */

/* 白いカードを外す。囲いのぶんの余白も返す */
.kh-archiveSidebar .c-widget {
	background: none;
	box-shadow: none;
	border: none;
	border-radius: 0;
	padding: 0;
	margin-bottom: 64px;
}

.kh-archiveSidebar .c-widget:last-child {
	margin-bottom: 0;
}

/* 見出し。帯や囲いは持たせず、文字の下に黒い線を1本引くだけにする。
   style.css の .c-widget__title（左に5pxの緑線）はここで打ち消す */
.kh-archiveSidebar .c-widget__title {
	position: relative;
	background: none;
	border: none;
	border-bottom: 2px solid var(--kh-frame);
	border-radius: 0;
	padding: 0 0 10px;
	margin-bottom: 18px;
	font-family: var(--kh-font-ui);
	font-weight: var(--kh-weight-ui);
	font-size: 18px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	font-feature-settings: "palt" 1;
	color: var(--kh-ink);
	text-align: left;
}

/* SWELLが擬似要素で足す飾り線は出さない（style.css で消してあるものを戻さない） */
.kh-archiveSidebar .c-widget__title::before,
.kh-archiveSidebar .c-widget__title::after {
	content: none;
}

/* タグは白いピル。SWELLが薄いグレーの地を !important で固めているので、
   こちらも !important で白に戻す（フッターのタグと同じ理由） */
.kh-archiveSidebar .tagcloud .tag-cloud-link {
	background: var(--kh-card) !important;
}

/* サイドバーの文字の大きさは、SWELLのカスタマイザー（--swl-fz--side）が
   15.48pxを配っている。PCではちょうどよいが、SPは本文が1列に落ちて
   カードのタイトルが16pxまで下がるため、行き先の一覧がそれとほぼ同じ大きさになり、
   どちらが主役か分からなくなる。SPだけ14pxに下げて、カードより一段下に置く。 */
@media (max-width: 767px) {
	.kh-archiveSidebar .c-listMenu a {
		font-size: 14px;
	}
}
