/**
 * Feature / series article — scoped to .feature-article only.
 * Editorial magazine direction: photo, whitespace, mincho, rules.
 * Fonts: FOT-TsukuAOldMinPr6 (B=700, R=400). License confirmation required.
 *
 * Reading column follows theme.json contentSize (760px).
 * Hero visuals stay wider (up to 1200px) — Feature-specific.
 */

@font-face {
	font-family: "FOT-TsukuAOldMinPr6";
	src: url("../../font/FOT-TsukuAOldMinPr6-R.otf") format("opentype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "FOT-TsukuAOldMinPr6";
	src: url("../../font/FOT-TsukuAOldMinPr6-B.otf") format("opentype");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* Reading measure token for Feature chrome (header / closing / pager). */
.feature-article {
	--feature-content-width: var(--wp--style--global--content-size);
}

/* -------------------------------------------------------------------------- */
/* Hero                                                                       */
/* -------------------------------------------------------------------------- */

/*
 * 特集ヒーローだけ本文幅（760px）より大きく見せる。
 * WP constrained の max-width / margin:auto !important を最小限で打ち消す。
 * （親の alignfull 内に収まるため、1200px までは transform なしで中央揃え可能）
 */
.feature-article .feature-hero {
	width: min(1200px, calc(100vw - 48px));
	max-width: min(1200px, calc(100vw - 48px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

@media (min-width: 1200px) {
	.feature-article .feature-hero {
		width: min(1200px, calc(100vw - 80px));
		max-width: min(1200px, calc(100vw - 80px)) !important;
	}
}

.feature-article .feature-hero__media {
	position: relative;
	aspect-ratio: 6 / 4;
	margin: 0;
	overflow: hidden;
	background: #ddd;
}

.feature-article .feature-hero__image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

/*
 * Portrait hero (PC only): keep native ratio, cap height, no crop.
 * Mobile must NOT use these — it keeps the shared 4:5 full-bleed cover.
 */
@media (min-width: 601px) {
	.feature-article .feature-hero.is-portrait {
		width: fit-content;
		max-width: min(1200px, calc(100vw - 48px));
		margin-left: auto !important;
		margin-right: auto !important;
		overflow: visible;
	}

	.feature-article .feature-hero__media.is-portrait {
		aspect-ratio: auto;
		width: max-content;
		max-width: 100%;
		max-height: 850px;
		margin-inline: auto;
		overflow: visible;
	}

	.feature-article .feature-hero__media.is-portrait .feature-hero__image {
		width: auto;
		height: auto;
		max-width: 100%;
		max-height: 850px;
		object-fit: contain;
		object-position: center;
	}

	/*
	 * 縦ヒーローは画像幅が狭いことがあるため、見出しだけ最大900pxまで広げて
	 * 中程度のタイトルを1行で収めやすくする（極端に長いタイトルは折り返し／将来SVG）。
	 */
	.feature-article .feature-hero.is-portrait .feature-hero__heading {
		width: min(900px, calc(100vw - 48px));
		max-width: min(900px, calc(100vw - 48px));
		position: relative;
		left: 50%;
		transform: translateX(-50%);
	}
}

.feature-article .feature-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.feature-article .feature-hero.is-text-white .feature-hero__media::after {
	background:
		linear-gradient(
			180deg,
			rgba(0, 0, 0, 0.15) 0%,
			rgba(0, 0, 0, 0.02) 42%,
			rgba(0, 0, 0, 0.3) 100%
		);
}

.feature-article .feature-hero.is-text-black .feature-hero__media::after {
	background:
		linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.25) 0%,
			rgba(255, 255, 255, 0.02) 48%,
			rgba(255, 255, 255, 0.3) 100%
		);
}

.feature-article .feature-hero__overlay {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding:
		clamp(32px, 6vw, 72px)
		clamp(24px, 6vw, 64px)
		clamp(24px, 5vw, 48px);
}

.feature-article .feature-hero.is-text-white {
	color: #fff;
}

.feature-article .feature-hero.is-text-black {
	color: #111;
}

.feature-article .feature-hero__heading {
	width: 100%;
	max-width: 900px;
	margin-inline: auto;
	text-align: center;
}

.feature-article .feature-hero__label {
	margin: 0 0 0.45em;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 700;
	font-size: clamp(18px, 2.2vw, 24px);
	line-height: 1;
	letter-spacing: 0.14em;
}

.feature-article .feature-hero__series-title {
	margin: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-size: clamp(52px, 4.6vw, 58px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-wrap: balance;
}

/*
 * SVG title: fit inside max-width AND max-height, keep intrinsic ratio.
 * Wrapper is full heading width (avoids fit-content + max-width:100% collapse).
 * Do not stretch. Spacing vs 特集 / subtitle is owned by .has-title-svg rules.
 */
.feature-article .feature-hero__title-svg {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0;
	line-height: 0;
}

.feature-article .feature-hero__title-svg-img {
	display: block;
	flex: 0 1 auto;
	width: auto;
	height: auto;
	/* PC: ~80% of previous 576×192 caps */
	max-width: min(460px, calc((100vw - 80px) * 0.8));
	max-height: 154px;
	object-fit: contain;
	object-position: center;
}

/*
 * SVGモード専用の上下間隔（テキストタイトルの余白は変更しない）
 * 特集 → SVG → サブタイトル
 */
.feature-article .feature-hero.has-title-svg .feature-hero__label {
	margin-bottom: clamp(20px, 2.4vw, 28px);
}

.feature-article .feature-hero.has-title-svg .feature-hero__title-svg {
	margin-top: 0;
	margin-bottom: 0;
}

.feature-article .feature-hero.has-title-svg .feature-hero__subtitle {
	margin-top: clamp(18px, 2vw, 24px);
}

/* Visually hidden but available to assistive tech / document outline */
.feature-article .feature-hero__visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.feature-article .feature-hero__subtitle {
	margin: 0.4em 0 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 700;
	font-size: clamp(14px, 1.3vw, 16px);
	line-height: 1.6;
	letter-spacing: 0;
}

/* Caption: hairline matched to text width, quieter than body type */
.feature-article .feature-hero__caption {
	align-self: flex-start;
	max-width: 92%;
	margin: 0;
	padding: 0;
	border: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(12px, 1.6vw, 16px);
	line-height: 1.6;
	letter-spacing: 0.08em;
	opacity: 0.88;
}

.feature-article .feature-hero__caption-text {
	display: inline-block;
	max-width: 100%;
	padding-bottom: 0.45em;
	padding-inline-end: 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 42%, transparent);
}

/* -------------------------------------------------------------------------- */
/* Article header (number + title)                                            */
/* -------------------------------------------------------------------------- */

.feature-article .feature-article__header {
	width: min(100% - 40px, var(--feature-content-width, 760px));
	margin: clamp(34px, 6vw, 70px) auto clamp(36px, 5vw, 56px);
	text-align: center;
}

.feature-article .feature-article__number {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75em;
	margin: 0 0 1.5em;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(14px, 1.8vw, 18px);
	line-height: 1.5;
	letter-spacing: 0.08em;
}

/* 下側の罫線のみ */
.feature-article .feature-article__number::after {
	content: "";
	width: clamp(40px, 10vw, 72px);
	height: 1px;
	background: var(--wp--preset--color--accent-3, #503aa8);
	opacity: 1;
}

.feature-article .feature-article__title {
	margin: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-size: clamp(34px, 5vw, 60px);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.035em;
	text-wrap: balance;
}

/* -------------------------------------------------------------------------- */
/* Series TOC（この特集の記事）— magazine contents, not cards                 */
/* -------------------------------------------------------------------------- */

.feature-article .feature-series-nav {
	width: min(100% - 40px, 640px);
	margin: 0 auto clamp(56px, 9vw, 96px);
	padding-top: clamp(28px, 4vw, 40px);
	border-top: 0;
}

.feature-article .feature-series-nav__label {
	margin: 0 0 1.25em;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 700;
	font-size: clamp(13px, 1.5vw, 15px);
	letter-spacing: 0.14em;
	line-height: 1.4;
	color: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article .feature-series-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.feature-article .feature-series-nav__item {
	margin: 0;
	border-bottom: 0;
}

.feature-article .feature-series-nav__link {
	position: relative;
	display: grid;
	grid-template-columns: 2.5em 1fr;
	gap: 0.75em 1.15em;
	align-items: baseline;
	padding: 0.85em 0.85em 0.85em 1.55em;
	text-decoration: none;
	color: inherit;
	background: transparent;
	border: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(15px, 1.9vw, 18px);
	line-height: 1.55;
	letter-spacing: 0.04em;
}

/* 左罫線（通常）：短め。hover でわずかに伸びる */
.feature-article .feature-series-nav__link::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 50%;
	width: 2px;
	height: 1.05em;
	transform: translateY(-50%);
	background: color-mix(in srgb, var(--wp--preset--color--contrast, #111) 28%, transparent);
	transition: height 180ms ease, background-color 180ms ease;
}

.feature-article .feature-series-nav__num {
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.06em;
	opacity: 0.72;
	color: inherit;
}

.feature-article .feature-series-nav__title {
	color: inherit;
	transition: color 180ms ease;
}

/*
 * other（他の記事へのリンク）：a である状態にのみ適用。
 * 常時ブランドカラーで「移動できる項目」と分かるようにする。
 * current は span なのでここには一致しない。
 */
.feature-article a.feature-series-nav__link .feature-series-nav__num,
.feature-article a.feature-series-nav__link .feature-series-nav__title {
	color: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article a.feature-series-nav__link .feature-series-nav__num {
	opacity: 1;
}

.feature-article a.feature-series-nav__link::before {
	background: color-mix(in srgb, var(--wp--preset--color--accent-3, #503aa8) 55%, transparent);
}

/* visited：ブラウザ既定色を使わない（通常リンクと同じ扱い） */
.feature-article a.feature-series-nav__link:visited .feature-series-nav__num,
.feature-article a.feature-series-nav__link:visited .feature-series-nav__title {
	color: var(--wp--preset--color--accent-3, #503aa8);
}

/* hover / focus：下線と左罫線の伸長で操作可能をさらに明示 */
.feature-article a.feature-series-nav__link:hover,
.feature-article a.feature-series-nav__link:focus-visible {
	text-decoration: none;
}

.feature-article a.feature-series-nav__link:hover .feature-series-nav__title,
.feature-article a.feature-series-nav__link:focus-visible .feature-series-nav__title {
	color: var(--wp--preset--color--accent-3, #503aa8);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

.feature-article a.feature-series-nav__link:hover::before,
.feature-article a.feature-series-nav__link:focus-visible::before {
	height: 1.65em;
	background: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article a.feature-series-nav__link:focus-visible {
	outline: 1px solid var(--wp--preset--color--accent-3, #503aa8);
	outline-offset: 3px;
}

/* current：固定表示。hover 対象外（span） */
.feature-article .feature-series-nav__item.is-current .feature-series-nav__link {
	font-weight: 700;
	background: color-mix(in srgb, var(--wp--preset--color--accent-3, #503aa8) 8%, transparent);
}

.feature-article .feature-series-nav__item.is-current .feature-series-nav__link::before {
	height: calc(100% - 1.1em);
	min-height: 1.65em;
	background: var(--wp--preset--color--accent-3, #503aa8);
	transition: none;
}

.feature-article .feature-series-nav__item.is-current .feature-series-nav__num {
	opacity: 1;
	color: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article .feature-series-nav__item.is-current .feature-series-nav__title {
	color: inherit;
	transition: none;
}

/* -------------------------------------------------------------------------- */
/* Closing matter: credits → (editors note) → NEXT → TOC → pager              */
/* -------------------------------------------------------------------------- */

.feature-article .feature-article__closing {
	width: min(100% - 40px, var(--feature-content-width, 760px));
	margin: clamp(64px, 10vw, 110px) auto 0;
	padding: 0;
}

/* 章ごとの分離は余白で。大きな切り替えだけ罫線（NEXT上） */
.feature-article .feature-article__closing > * + * {
	margin-top: clamp(56px, 9vw, 96px);
}

/* ① 取材クレジット — 罫線なし、余白とタイポのみ */
.feature-article .feature-credits {
	padding-top: 0;
	border-top: 0;
	text-align: center;
}

.feature-article .feature-credits__line {
	margin: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(13px, 1.5vw, 15px);
	line-height: 1.9;
	letter-spacing: 0.08em;
	color: color-mix(in srgb, var(--wp--preset--color--contrast, #111) 78%, transparent);
}

.feature-article .feature-credits__line + .feature-credits__line {
	margin-top: 0.15em;
}

/* Editor's Note — 罫線なし（表示時は余白で分離） */
.feature-article .feature-editors-note {
	padding-top: 0;
	border-top: 0;
}

.feature-article .feature-editors-note__label {
	margin: 0 0 0.85em;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 700;
	font-size: clamp(12px, 1.35vw, 14px);
	letter-spacing: 0.16em;
	line-height: 1.3;
	color: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article .feature-editors-note__body {
	margin: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(14px, 1.7vw, 16px);
	line-height: 1.9;
	letter-spacing: 0.04em;
}

/* ② NEXT — 上罫線のみ（記事末で唯一の大きな章切り替え） */
.feature-article .feature-next {
	padding: clamp(40px, 7vw, 64px) 0 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast, #111) 20%, transparent);
	border-bottom: 0;
	text-align: center;
}

.feature-article .feature-next__label {
	margin: 0 0 clamp(1.15rem, 3.2vw, 1.35rem);
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 700;
	font-size: clamp(11px, 1.3vw, 13px);
	letter-spacing: 0.22em;
	line-height: 1;
	color: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article .feature-next__episode {
	margin: 0 0 0.85em;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(13px, 1.5vw, 15px);
	letter-spacing: 0.1em;
	line-height: 1.5;
}

.feature-article .feature-next__title {
	margin: 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 700;
	font-size: clamp(26px, 4vw, 40px);
	line-height: 1.35;
	letter-spacing: 0.04em;
	text-wrap: balance;
}

.feature-article .feature-next__lead {
	margin: 1.35em auto 0;
	max-width: 28em;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(14px, 1.7vw, 17px);
	line-height: 1.85;
	letter-spacing: 0.05em;
}

.feature-article .feature-next__date {
	margin: 1.5em 0 0;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 400;
	font-size: clamp(12px, 1.4vw, 14px);
	letter-spacing: 0.12em;
	opacity: 0.65;
}

/* ③ closing 内のシリーズ TOC：横罫線なし、縦罫線＋背景は維持 */
.feature-article .feature-article__closing .feature-series-nav {
	width: 100%;
	margin-inline: 0;
	margin-bottom: 0;
	padding-top: 0;
	border-top: 0;
}

/*
 * NEXT → 「この特集の記事」：次回予告の余韻を残す。
 * 共通の `> * + *` よりこちらだけ余白を広げ、二重加算はしない。
 */
.feature-article .feature-article__closing .feature-next + .feature-series-nav {
	margin-top: clamp(80px, calc(9vw + 24px), 120px);
}

/* シリーズ一覧 → ページャー：別機能として十分な間隔 */
.feature-article .feature-article__closing .feature-series-nav + .feature-article-pager {
	margin-top: clamp(56px, 7vw, 72px);
}

/* ④ closing 内の pager：罫線なし、余白で分離 */
.feature-article .feature-article__closing .feature-article-pager {
	width: 100%;
	margin-bottom: clamp(32px, 5vw, 56px);
	padding-top: 0;
	border-top: 0;
}

/* -------------------------------------------------------------------------- */
/* End pager: 前回 / 特集一覧 / 次回                                          */
/* -------------------------------------------------------------------------- */

.feature-article .feature-article-pager {
	width: min(100% - 40px, var(--feature-content-width, 760px));
	margin: clamp(64px, 10vw, 110px) auto clamp(40px, 6vw, 72px);
	padding-top: clamp(28px, 4vw, 40px);
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast, #111) 18%, transparent);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 1.25rem 0.75rem;
	align-items: start;
}

.feature-article .feature-article-pager__col {
	min-width: 0;
}

.feature-article .feature-article-pager__prev {
	grid-column: 1;
	text-align: start;
}

.feature-article .feature-article-pager__index {
	grid-column: 2;
	text-align: center;
	align-self: start;
}

.feature-article .feature-article-pager__next {
	grid-column: 3;
	text-align: end;
}

.feature-article .feature-article-pager__link {
	display: inline-flex;
	flex-direction: column;
	gap: 0.35em;
	max-width: 100%;
	text-decoration: none;
	color: inherit;
	font-family: "FOT-TsukuAOldMinPr6", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.feature-article .feature-article-pager__link.is-empty {
	opacity: 0.35;
	pointer-events: none;
}

.feature-article .feature-article-pager__eyebrow {
	font-size: clamp(12px, 1.4vw, 14px);
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.3;
	color: var(--wp--preset--color--accent-3, #503aa8);
}

.feature-article .feature-article-pager__name {
	font-size: clamp(14px, 1.7vw, 17px);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.feature-article .feature-article-pager__index-link .feature-article-pager__eyebrow {
	padding-bottom: 0.4em;
	border-bottom: 1px solid currentColor;
}

.feature-article a.feature-article-pager__link:hover .feature-article-pager__name,
.feature-article a.feature-article-pager__index-link:hover .feature-article-pager__eyebrow {
	opacity: 0.7;
}

/* -------------------------------------------------------------------------- */
/* Theme.json justify override (scoped)                                       */
/* -------------------------------------------------------------------------- */

.feature-article .feature-hero p,
.feature-article .feature-article__header p,
.feature-article .feature-series-nav p,
.feature-article .feature-article-pager p,
.feature-article .feature-credits p,
.feature-article .feature-editors-note p,
.feature-article .feature-next p {
	text-align: start !important;
	text-justify: auto;
}

/* 特集タイトルユニットは中央揃え（上記より詳細度を上げる） */
.feature-article .feature-hero .feature-hero__heading,
.feature-article .feature-hero .feature-hero__label,
.feature-article .feature-hero .feature-hero__series-title,
.feature-article .feature-hero .feature-hero__title-svg,
.feature-article .feature-hero .feature-hero__subtitle {
	text-align: center !important;
}

.feature-article .feature-article__header,
.feature-article .feature-article__header p,
.feature-article .feature-article__title {
	text-align: center !important;
}

.feature-article .feature-credits,
.feature-article .feature-credits .feature-credits__line,
.feature-article .feature-next,
.feature-article .feature-next .feature-next__label,
.feature-article .feature-next .feature-next__episode,
.feature-article .feature-next .feature-next__title,
.feature-article .feature-next .feature-next__lead,
.feature-article .feature-next .feature-next__date {
	text-align: center !important;
}

.feature-article .feature-series-nav__label {
	text-align: start !important;
}

.feature-article .feature-article-pager__index,
.feature-article .feature-article-pager__index .feature-article-pager__eyebrow {
	text-align: center !important;
}

.feature-article .feature-article-pager__next,
.feature-article .feature-article-pager__next .feature-article-pager__eyebrow,
.feature-article .feature-article-pager__next .feature-article-pager__name {
	text-align: end !important;
}

/* -------------------------------------------------------------------------- */
/* Mobile                                                                     */
/* -------------------------------------------------------------------------- */

@media (max-width: 600px) {
	/*
	 * アイキャッチのみ画面幅いっぱい。
	 * `.is-layout-constrained > * { margin-inline: auto !important; }` を
	 * 特集ヒーローに限って打ち消し、本文幅と分離する。
	 */
	.feature-article {
		overflow-x: clip;
	}

	.feature-article .feature-hero {
		width: 100vw;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

	.feature-article .feature-hero__overlay {
		padding: 34px 16px 26px;
	}

	.feature-article .feature-hero__heading {
		max-width: 100%;
	}

	.feature-article .feature-hero__media {
		aspect-ratio: 4 / 5;
	}

	/*
	 * Mobile: portrait and landscape share the same full-bleed 4:5 cover.
	 * Explicitly undo any PC portrait sizing if classes are present.
	 */
	.feature-article .feature-hero.is-portrait,
	.feature-article .feature-hero.is-landscape {
		width: 100vw;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

	.feature-article .feature-hero__media.is-portrait,
	.feature-article .feature-hero__media.is-landscape {
		aspect-ratio: 4 / 5;
		width: 100%;
		max-width: none;
		max-height: none;
		margin-inline: 0;
		overflow: hidden;
	}

	.feature-article .feature-hero__media.is-portrait .feature-hero__image,
	.feature-article .feature-hero__media.is-landscape .feature-hero__image {
		display: block;
		width: 100%;
		height: 100%;
		max-width: none;
		max-height: none;
		margin: 0;
		object-fit: cover;
		object-position: center;
	}

	.feature-article .feature-hero__series-title {
		font-size: clamp(32px, 9vw, 42px);
		line-height: 1.2;
		letter-spacing: 0;
		/* balance は行を均等割し余白を残すため、スマホでは通常折り返し */
		text-wrap: wrap;
	}

	.feature-article .feature-hero__title-svg-img {
		/* ~80% of previous available width / 150px height */
		max-width: calc((100vw - 72px) * 0.8);
		max-height: 120px;
	}

	.feature-article .feature-hero.has-title-svg .feature-hero__label {
		margin-bottom: clamp(20px, 5vw, 24px);
	}

	.feature-article .feature-hero.has-title-svg .feature-hero__subtitle {
		margin-top: clamp(18px, 4.5vw, 22px);
	}

	.feature-article .feature-hero__subtitle {
		font-size: clamp(14px, 3.5vw, 16px);
		line-height: 1.6;
		letter-spacing: 0;
	}

	.feature-article .feature-hero__caption {
		max-width: 100%;
		font-size: 12px;
	}

	.feature-article .feature-article__header {
		/* 本文カラムより少し広く（左右ガターを一部回収） */
		width: calc(100% + 24px);
		max-width: calc(100% + 24px) !important;
		margin-top: 34px;
		margin-bottom: 36px;
		margin-left: -12px !important;
		margin-right: -12px !important;
	}

	.feature-article .feature-article__title {
		font-size: clamp(30px, 9vw, 42px);
		text-wrap: wrap;
	}

	.feature-article .feature-series-nav {
		width: min(100% - 36px, 640px);
		margin-bottom: 64px;
	}

	.feature-article .feature-article__closing {
		width: min(100% - 36px, 720px);
	}

	.feature-article .feature-article__closing .feature-series-nav {
		width: 100%;
		margin-bottom: 0;
	}

	/* シリーズ一覧 → ページャー（スマホ優先の余白） */
	.feature-article .feature-article__closing .feature-series-nav + .feature-article-pager {
		margin-top: clamp(48px, 14vw, 72px);
	}

	.feature-article .feature-next__label {
		margin-bottom: 1.35rem; /* ≈ 21.6px：NEXTを独立した小見出しに */
	}

	/* スマホでも3列横並びを維持（中央の特集一覧がずれない） */
	.feature-article .feature-article-pager {
		width: 100%;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
		gap: 0.65rem 0.5rem;
		text-align: initial;
	}

	.feature-article .feature-article-pager__prev {
		grid-column: 1;
		text-align: start;
	}

	.feature-article .feature-article-pager__index {
		grid-column: 2;
		order: 0;
		padding-bottom: 0;
		text-align: center;
	}

	.feature-article .feature-article-pager__next {
		grid-column: 3;
		text-align: end;
	}

	.feature-article .feature-article-pager__prev,
	.feature-article .feature-article-pager__index,
	.feature-article .feature-article-pager__next {
		min-width: 0;
	}

	.feature-article .feature-article-pager__next,
	.feature-article .feature-article-pager__next .feature-article-pager__eyebrow,
	.feature-article .feature-article-pager__next .feature-article-pager__name {
		text-align: end !important;
	}

	.feature-article .feature-article-pager__index,
	.feature-article .feature-article-pager__index .feature-article-pager__eyebrow {
		text-align: center !important;
	}

	.feature-article .feature-article-pager__link {
		gap: 0.25em;
	}

	.feature-article .feature-article-pager__eyebrow {
		font-size: 12px;
		letter-spacing: 0.1em;
	}

	.feature-article .feature-article-pager__name {
		font-size: 13px;
		line-height: 1.45;
		overflow-wrap: anywhere;
	}
}

/* Narrow phones: keep SVG readable by reducing side gutters */
@media (max-width: 375px) {
	.feature-article .feature-hero__title-svg-img {
		/* ~80% of previous available width / 126px height */
		max-width: calc((100vw - 40px) * 0.8);
		max-height: 101px;
	}
}
