/*
 * テーマ固有のスタイル。フェーズ3で書きます。
 *
 * ここに書くもの:
 *   - ヘッダーの position: sticky 化（body の padding-top ハックを削除）
 *   - [id] { scroll-margin-top: var(--header-h); }
 *     ※ レガシーの vw ベースの数値をそのまま持ち越さないこと。
 *        docs/migration-plan.md §5.1 に落とし穴あり
 *   - フッターメニューをPC/SPで出し分ける（マークアップは1つ）
 *   - ボタンの3バリアント統合
 *   - フォーカスリング、スキップリンク
 *
 * assets/css/style_top.css と style_other.css は
 * レガシーからの複製です。**書き換えないでください。**
 * 上書きが必要な場合はこのファイルに書きます。
 */

/* -------------------------------------------------------------------------
 * body の余白リセット
 *
 * 2026-08-20: 目視確認で発見。style_other.css（レガシーからの複製・書き換え禁止）が
 * `body { padding-top: 6.4rem; }` を今も持っている。これはレガシーの `position: fixed`
 * ヘッダーがコンテンツに重ならないよう空けていた押し下げ分（docs/migration-plan.md §5.1）。
 * ヘッダーを `position: sticky` に変えた時点でこの押し下げ自体が不要になっているのに、
 * 消し忘れていたため、どのページでもヘッダー直下に約102pxの意味のない空白ができていた
 * （privacy-policy・about-companyの目視確認で気づいた）。
 * ---------------------------------------------------------------------- */

body {
	padding-top: 0;
}

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	top: 0; left: 0;
	z-index: 100000;
	width: auto; height: auto;
	margin: 0; padding: .75rem 1.25rem;
	clip-path: none;
	background: #fff;
	color: #000;
}

/* -------------------------------------------------------------------------
 * ヘッダーの高さ（scroll-margin-topの計算にのみ使う）
 *
 * レガシーは position: fixed のため body に padding-top を入れて押し下げ、
 * 991px以下では 7.2vw のような viewport 依存の値を使っていた（docs/migration-plan.md §5.1）。
 * position: sticky に変えたことで、この押し下げ自体はもう不要（ナビは文書フローに残る）。
 * ただし sticky ヘッダーはスクロール中も表面に残るため、
 * #anchor へジャンプしたときにヘッダーが目的地を覆ってしまう問題は残る。
 * そのための scroll-margin-top だけを、固定値（vwではない）で持つ。
 *
 * ★ 数値は仮値。実際にレンダリングされたヘッダーの高さを見て調整すること
 *   （このセッションはブラウザから確認できないため、正確な値は未検証）。
 * ---------------------------------------------------------------------- */

:root {
	--header-h: 4.5rem;
}

@media (min-width: 992px) {
	:root {
		/* 2026-08-20: 実測値に合わせて調整（旧仮値 6.4rem は実際のヘッダー高さ 73.5px = 4.6rem と
		   1.8remずれていた。ログイン時の管理バー分ではなく、単純に仮値のままだった）。
		   モバイル側の 4.5rem はブラウザのリサイズツールが実際のビューポート幅を変更できず、
		   このセッションでは未確認のまま。 */
		--header-h: 4.6rem;
	}
}

/* 2026-09-18追記（検収ID6/7/26再確認）: ヘッダー高さ自体のズレ（CLS）はtheme.jsの
   実測反映で解消済みだが、`scroll-margin-top`をヘッダー実測高さと完全に一致させただけ
   だと、アンカー先の要素の上端がヘッダー下端にぴったり密着する見た目になり、
   「もう少し下にくるように」という元の要望（ヘッダーに触れない程度の余白が欲しい）を
   満たせていなかった。ヘッダー高さに加えて視覚的な余白分（1.5rem）を上乗せする。 */
[id] {
	scroll-margin-top: calc(var(--header-h) + 1.5rem);
}

/* 2026-09-18追記（検収指摘再確認、「全体的にアンカー位置がずれているように見える」）:
   Home（#benefit/#comparison/#apply）等の一部アンカーは、レガシー由来の
   `.anchor-adj`パターン（style_other.css、書き換え禁止）をそのまま移植している。
   これは`<h2 class="anchor-adj"><span id="...">見出し</span></h2>`という構造で、
   `.anchor-adj span { position: absolute; top: -200px; }`により、実際のジャンプ先
   （span）を見出し文字の200px上に意図的にずらすことで、レガシーの固定ヘッダーを
   避けるための、CSS `scroll-margin-top` 登場以前からある独自の着地位置調整手段。
   上の`[id] { scroll-margin-top: ... }`は本来この`.anchor-adj`を使わない新規アンカー
   （#comparison-premio等）のために追加したものだが、`[id]`という広いセレクタのため
   `.anchor-adj span`にも重複して適用されてしまい、「-200px的にずらす」＋
   「scroll-margin-topでさらに158px分ずらす」の二重補正になっていた。結果、
   本来の着地位置よりかなり上（ヘッダー高さ+視覚的余白の合計より大幅に上）で止まり、
   目的のセクションより前のコンテンツが余分に見えてしまっていた
   （検収指摘、カード比較セクションで発覚したが、同じ構造を使う#benefit/#apply等、
   サイト全体のアンカーに影響する不具合だった）。
   `.anchor-adj`配下のspanは独自の-200pxオフセットで完結しているため、
   scroll-margin-topを0に戻して二重補正を解消する。 */
.anchor-adj span[id] {
	scroll-margin-top: 0;
}

/* -------------------------------------------------------------------------
 * ヘッダー
 *
 * レガシーの3点を解消（docs/migration-plan.md §5 項目2・3）:
 *   - <table> レイアウト → flexbox
 *   - position: fixed + body padding-top の vw ハック → position: sticky
 *   - jQueryでナビを #bumper に複製 → 複製自体をやめた
 * ---------------------------------------------------------------------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 1030; /* Bootstrapの .navbar.fixed-top と同じ値を踏襲 */
	background: #fff;
}

/* Homeのみ: 初回表示時のヘッダー演出 */
body.home .site-header {
	animation: site-header-intro 1s ease 50ms both;
}

@keyframes site-header-intro {
	from {
		transform: translateY(-150px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.home .site-header {
		animation: none;
	}
}

/* 2026-08-20: 目視確認で発見。ログイン中はWPMLの管理バー（#wpadminbar, fixed, height 32px）が
   z-index 99999でヘッダーの上に重なり、スクロール時にヘッダー上段（プライマリナビ）が隠れる。
   訪問者（未ログイン）には影響しないが、管理者が確認するときのために合わせておく。 */
body.admin-bar .site-header {
	top: 32px;
}

/* 2026-08-22追記（再指摘で修正）: ロゴ・ユーティリティの左右位置が、フッターの
   中央寄せコンテナ（最大幅1140px）とズレていた（ヘッダーだけ`1rem`固定パディングの
   ままだった）。フッターと同じ`max(1.5rem, calc((100% - 1140px) / 2))`に揃える。 */
.site-header__bar {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .5rem 1.5rem;
	padding-left: max(1.5rem, calc((100% - 1140px) / 2));
	padding-right: max(1.5rem, calc((100% - 1140px) / 2));
}

.site-header__brand {
	display: flex;
	align-items: center;
	margin-right: auto;
}

.site-header__logo--mobile {
	display: block;
}

.site-header__logo--desktop {
	display: none;
}

/*
 * 2026-09-03修正: デスクトップ幅では`.site-header__nav`（赤いプライマリナビの帯）が
 * `flex-wrap`でロゴ行の下に折り返される2行目になる。`.site-header__bar`自体の
 * `padding: .5rem 1.5rem`（8px上下）はロゴ行の上と、折り返された最後の行（＝赤いナビ）の
 * 下の両方に等しくかかってしまうため、本番には無い8pxの白い余白が赤いナビの直下（＝
 * ヒーロー画像の直前）に見えてしまっていた。ロゴ行の上の8pxはそのまま必要なので、
 * デスクトップ幅だけ`padding-bottom`を打ち消し、赤いナビが`.site-header__bar`の
 * 下端（＝ヘッダー全体の下端）にぴったり付くようにする。
 */
@media (min-width: 992px) {
	.site-header__bar {
		flex-wrap: wrap;
		padding-bottom: 0;
	}
	.site-header__logo--mobile {
		display: none;
	}
	.site-header__logo--desktop {
		display: block;
	}
}

/* モバイルのみのショートカットアイコン（お申込み・ログイン）。レガシー同様デスクトップでは非表示 */
.site-header__icon {
	display: inline-flex;
}

@media (min-width: 992px) {
	.site-header__icon {
		display: none;
	}
}

/* 2026-09-04追記（目視指摘で再修正。今回で3回目）:
   前回（2026-08-22）の対応はハンバーガーの並び順は直したが、アイコン・ロゴのサイズは
   固定px（32px/44px）に置き換えただけで、本番の実際のサイズ決定ロジックとは無関係な
   仮の値だった。本番のレガシー実装（premio/_inc/header.php）は、ハンバーガー・ロゴ・
   お申込み・ログインの4つの画像を1つの<table class="table">（Bootstrapのtable、
   width:100%）の中に`w-100`（各imgが自分の<td>の幅いっぱいに広がる）で並べている。
   <td>に幅指定は無いため、tableの自動レイアウトが4画像の「本来の幅」の比（本番実測:
   ハンバーガー69px・ロゴ346px・お申込み72px・ログイン72px、合計559px）を保ったまま、
   ビューポート幅ぴったりに比例縮小する。結果として4つの画像は常に同じ高さ・
   左右の余白ゼロ（画面端から端まで）で並ぶ（Chromeのモバイルエミュレーションで
   375px幅・320px幅の両方で実測し、比率が一致することを確認済み）。
   今回は固定pxではなく、この「本来の幅の比で埋める」ロジックをflexboxで再現する
   （`flex: <本来の幅> 0 0`は、flex-basis 0のまま本来の幅の比でグロー分配するため、
   tableの自動レイアウトと同じ効果になる）。あわせて、本番はこの行に左右パディングが
   一切無い（`nav.navbar div.col-12 .container { padding: 0; max-width: 100%; }`、
   `premio/css/style_other.css`のmax-width:991pxブロック）ため、モバイルだけ
   `.site-header__bar`のパディング・gapもゼロにする。 */
@media (max-width: 991.98px) {
	.site-header__bar {
		padding: 0;
		gap: 0;
	}

	.site-header__toggle {
		order: -1;
		flex: 69 0 0;
	}

	.site-header__toggle summary img {
		display: block;
		width: 100%;
		height: auto;
	}

	.site-header__brand {
		flex: 346 0 0;
		margin-right: 0;
	}

	.site-header__logo--mobile {
		display: block;
		width: 100%;
		height: auto;
	}

	.site-header__icon {
		flex: 72 0 0;
	}

	.site-header__icon img {
		display: block;
		width: 100%;
		height: auto;
	}
}

.site-header__nav-utility {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}

/* 2026-08-22: デスクトップ用の複製（ロゴの反対側に出す方）は、モバイルでは隠す
   （モバイルは`.site-header__nav-utility--mobile`側、ハンバーガーの中の方だけを使う）。
   `.site-header__nav-utility`共通ルールがdisplay:flexを既定にしているため、
   ここで明示的に打ち消さないとモバイルでもロゴの右に重なって出てしまう。 */
.site-header__nav-utility--desktop {
	display: none;
}

/* -------------------------------------------------------------------------
 * <details>/<summary> によるナビ・フッターの開閉（JS不要）
 *
 * 仕組み: モバイルはネイティブの details 挙動（開閉できる）に任せる。
 * デスクトップは summary を隠し、中身を常に強制表示する。
 * ブラウザは details:not([open]) > :not(summary) を display:none にするだけなので、
 * より詳細度の高い display 指定で上書きできる（content-visibility ではない）。
 * ---------------------------------------------------------------------- */

.js-accordion summary {
	cursor: pointer;
	list-style: none;
}

.js-accordion summary::-webkit-details-marker {
	display: none;
}

@media (min-width: 992px) {
	/* 2026-08-22追記（目視確認で発覚した既存の不具合）: このルールは元々
	   `.site-footer__group > summary` も対象にしていたが、ヘッダーの`summary`は
	   ハンバーガーアイコンだけで、デスクトップでは意味を持たないので隠して正しい。
	   一方フッターの`summary`はグループの見出しテキスト（「クレジットカードお申込み」等）
	   そのものなので、隠してしまうと見出しの無いリンクの羅列に見えてしまう
	   （目視確認で発覚。それ自体はフェーズ3時点からの既存の不具合で、今回の配色作業とは
	   別件）。ヘッダー側だけを対象にする。 */
	.site-header__toggle > summary {
		display: none;
	}
	.site-header__toggle > *:not(summary) {
		display: block !important;
	}
	.site-footer__group > * {
		display: block !important;
	}
	/* 2026-09-18追記（検収指摘）: 上のJS修正（footer summary クリックのpreventDefault、
	   theme.js参照）でクリックしても子メニューが消えなくなったが、`.js-accordion summary`
	   の共通ルール（このファイル冒頭付近）が`cursor: pointer`を出したままだったため、
	   デスクトップではクリックしても何も起きないのに指カーソルだけが出る、という
	   見た目上のバグが残っていた（レガシーの固定見出しはリンクではないので矢印カーソル）。
	   デスクトップ幅に限りフッターの見出しだけカーソルを既定に戻す。 */
	.site-footer__group.js-accordion > summary {
		cursor: default;
	}
}

/* モバイルの開閉インジケーター（+/-）。テキストではなくCSSで出す。
   2026-08-22追記（目視指摘で発覚した不具合）: `.js-accordion`はフッターの4グループだけでなく
   ヘッダーのハンバーガー（`.site-header__toggle`）も共有しているクラスだったため、この
   `::after`が開閉状態のたびにハンバーガーアイコンの下にも「+」「−」を出してしまい、
   「中途半端なプラスボタンが見える」不具合になっていた。フッターのグループだけに絞る。 */
@media (max-width: 991.98px) {
	.site-footer__group.js-accordion > summary::after {
		content: '+';
		float: right;
	}
	.site-footer__group.js-accordion[open] > summary::after {
		content: '\2212'; /* − */
	}
}

.site-header__menu,
.site-footer__list,
.site-footer__legal-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* 2026-08-22: `.site-header__menu`のflex化・区切り線は下の「ヘッダーの配色」節に
   まとめて書く（区切り線とgapを両方使うと二重に間隔が空くため、gapは使わずborder-leftの
   paddingだけで間隔を作る）。 */

/* 2026-08-20: 目視確認で発見。scripts/create-menus.php のコメントは
   「レガシーではモバイルのみに出ていた項目。CSSで lg 以上を非表示にする」としていたが、
   そのCSSルール自体が書かれていなかった。デスクトップで「アカウントユーザーガイド」が
   ヘッダー右側のユーティリティリンクと合わせて2回出ていたのはこれが原因。 */
@media (min-width: 992px) {
	.menu-item-mobile-only {
		display: none;
	}
}

/* -------------------------------------------------------------------------
 * ヘッダーの配色（本サイトの見た目を再現）
 *
 * 2026-08-22: レイアウト用CSS（sticky化・flexbox化）だけが実装済みで、配色が
 * 丸ごと未実装だったことが目視確認で発覚（docs/current-state.mdフェーズ3が
 * 最初から「見た目の目視確認は未」としていた項目そのもの）。
 * 本サイトの実測値: `#navbarsDefault { background-color: #e5090d; }`
 * （premio/css/style_other.css）。
 *
 * 2026-08-22追記（再指摘で修正）: 最初の実装は赤帯にプライマリナビ+ユーティリティを
 * まとめて1本にしていたが、これは本サイトの実際の配置（ユーティリティはロゴの反対側・
 * 赤帯の外・上）と違うと指摘を受けた。本サイトの構造を確認したところ、legacy header.php
 * では `.navbar-right.d-none.d-lg-block`（デスクトップ専用、白背景の上段）と、
 * `#navbarsDefault` 内の同項目（モバイルのみ、赤帯代わりの暗い帯の中）の**2箇所併存**が
 * 正解だった。`header.php`側で`premio_header_utility_links()`を2回呼ぶ形に直し、
 * ここではデスクトップ版（ロゴと同じ白背景の上段）とモバイル版（ハンバーガー内、
 * 下のセクション）を別クラスで出し分ける。
 * ---------------------------------------------------------------------- */

@media (min-width: 992px) {
	.site-header__toggle {
		order: 2;
		width: 100%;
	}

	.site-header__brand {
		order: 0;
	}

	/* 2026-08-22再修正: 本サイトはENGLISH（言語切替）が1行目、
	   アカウントユーザーガイド+ログインボタンが2行目という、縦2行構成になっている。
	   `flex-direction: column`だと3項目が縦に3行離れてしまう（1項目=1行になるため）。
	   代わりに`row`+`wrap`のままにして、言語切替だけ`flex-basis: 100%`で行を占有させ、
	   強制的に単独の1行目にする。残り2項目（ガイド・ログイン）は入りきらずに
	   自動的に2行目へ折り返るので、結果として2行構成になる。 */
	.site-header__nav-utility--desktop {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-end;
		align-items: center;
		gap: .4rem .75rem;
		order: 1;
	}

	.site-header__nav-utility--desktop .lang-switcher {
		order: -1;
		flex-basis: 100%;
		display: flex;
		justify-content: flex-end;
	}

	/* 2026-09-04追記: 本番実測（`.online_account a.text-dark`、
	   `.lang-switcher.text-dark`）では、この2つのリンクは既定の青いリンク色ではなく
	   Bootstrapの`.text-dark`相当（#343a40）で表示される。テーマ側はこの2クラスに
	   色指定が無かったため、既定の青リンク色のまま表示されていた（目視指摘で発覚）。 */
	/* 2026-09-04追記: 本番実測（`div.navbar-right { font-size: 0.9rem; }`、
	   premio/css/style_other.css）では、ヘッダー右上のアカウントユーザーガイド・
	   言語切替リンクは本文の16pxより一回り小さい0.9rem（14.4px）で表示される。
	   テーマ側はこの祖先の`.navbar-right`に相当するフォントサイズ指定が無く、
	   既定の16pxのまま表示されていた（目視指摘で発覚）。 */
	.site-header__nav-utility--desktop a.online-account,
	.site-header__nav-utility--desktop a.lang-switcher {
		color: #343a40;
		font-size: .9rem;
	}

	/* 2026-09-04追記: 本番実測（`div.online_account .btn { border-radius: 0; }`、
	   premio/css/style_other.css）では、ログインボタンはBootstrapの`.btn`既定の角丸
	   （border-radius: .25rem）を`.online_account`という祖先クラスで打ち消しており、
	   実際には真四角。テーマ側は`.online_account`に相当する祖先クラスを持たせていな
	   かったため、Bootstrap既定の角丸のまま表示されていた（目視指摘で発覚）。 */
	.site-header__nav-utility--desktop .btn {
		border-radius: 0;
	}

	.site-header__nav-utility--mobile {
		display: none;
	}

	/* 2026-08-22追記（再指摘で修正）: 赤帯（背景）は画面の両端まで届く全幅のままだが、
	   その中のメニュー自体はフッターと同じ中央寄せの1140px幅に収め、なおかつ
	   （左詰めではなく）中央寄せで配置する。
	   以前は`.site-header__bar`の固定`1rem`パディングを負のマージンで打ち消していたが、
	   `.site-header__bar`のパディングがフッターと同じ可変値（`max()`）になったため、
	   固定値による打ち消しは使えない。代わりに、ビューポート基準で画面幅いっぱいに
	   広げる定番の手法（`margin: 0 calc(50% - 50vw)`）で、祖先のパディングに関係なく
	   全幅にする。 */
	/* 2026-08-22再修正: `.site-header__nav`は`.site-header__bar`（既に左右パディングで
	   1140px幅に狭められている）の内側にあるため、パディングを`%`で書くと、そのパーセントは
	   ビューポート全体ではなく`.site-header__bar`の内側幅（=1140px）を基準に計算されてしまい、
	   `(100% - 1140px) / 2`が常に0近くになって左右パディングがほぼ付かなかった
	   （メニューがフッターと違う狭い基準で中央寄せされ、見た目上「センターに見えない」原因）。
	   `vw`はどこにネストしていても常にビューポート幅そのものを基準にするため、
	   `%`ではなく`100vw`を使う。 */
	.site-header__nav {
		background: #e5090d;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		width: auto;
		padding-left: max(1.5rem, calc((100vw - 1140px) / 2));
		padding-right: max(1.5rem, calc((100vw - 1140px) / 2));
		display: flex;
		justify-content: center;
	}

	.site-header__menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	/* 2026-09-04追記: 本番実測（`ul.navbar-nav.justify-content-center.font-weight-bold`、
	   premio/_inc/header.php）では、赤帯のプライマリナビ全項目がBootstrapの
	   `.font-weight-bold`（font-weight: 700）で太字表示される。テーマ側はfont-weightの
	   指定が無く、既定の400（レギュラー）のまま表示されていた（ユーザー指摘で発覚）。 */
	.site-header__menu a {
		display: block;
		padding: .65rem .75rem;
		color: rgba(255, 255, 255, .9);
		font-weight: 700;
	}

	/* 本番はBootstrap navbar-dark既定のホバー（色のみ、下線なし）。
	   text-decoration: noneが無いとBootstrapのa:hover下線が透けて出るため明示。 */
	.site-header__menu a:hover {
		color: rgba(255, 255, 255, .75);
		text-decoration: none;
	}

	.site-header__menu li {
		border-left: 1px solid #daa0a1;
	}

	.site-header__menu li:first-child {
		border-left: 0;
	}
}

/* -------------------------------------------------------------------------
 * モバイルのハンバーガーメニュー（開いたときのパネル）
 *
 * 2026-08-22: 目視確認で発覚。開いた状態のパネルに位置・幅・背景の指定が一切なく、
 * `.site-header__bar`のflexの並びの中にそのまま項目がテキストのまま流れ込み、
 * ロゴや本文と重なって表示されていた。レガシーの `nav.navbar #navbarsDefault
 * { background-color: rgba(0, 0, 0, 0.75); }`（991px以下）に合わせ、
 * ヘッダー直下に浮かせるオーバーレイパネルとして実装する。
 * ---------------------------------------------------------------------- */

@media (max-width: 991.98px) {
	/* 2026-08-22: 目視確認で発見した2度目の不具合。パネルの位置決めの基準（containing
	   block）を`.site-header__toggle`（ハンバーガーボタン自身、幅117px程度）にしていたため、
	   `max-width: 100%`がそのハンバーガーボタンの幅で計算されてしまい、パネルがボタンの
	   幅のまま縦に伸びる不具合になっていた。基準を、すでに`position: sticky`で位置決めされて
	   おり、かつヘッダー全幅を持つ`.site-header`自体に変更し、`width: 100%`のみで十分な形にした
	   （`100vw`はスクロールバー分のずれや、ここでは不要な水平スクロールを生む可能性があるため
	   使わない）。 */
	.site-header__nav {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background: rgba(0, 0, 0, .85);
		padding: 1rem 1.25rem 1.25rem;
		z-index: 20;
	}

	/* 2026-09-04修正: 本番のレガシーCSS（premio/css/style_other.css、max-width:991px
	   ブロック）にはメニュー項目間の区切り線が無い。以前ここに付けていた
	   `border-bottom`は本番に存在しない独自の装飾で、目視指摘により削除した。 */

	.site-header__menu a {
		display: block;
		padding: .6rem 0;
		color: #fff;
	}

	/* 2026-09-04追記: デスクトップ側（上のブロック）には`:hover`に`text-decoration: none;`が
	   あったが、モバイル側には同じ上書きが無かった。Bootstrapは`a:hover { text-decoration:
	   underline; }`を既定で持つため、モバイルのハンバーガーメニューだけホバー時に本番には無い
	   下線が付いていた（目視指摘で発覚）。 */
	.site-header__menu a:hover {
		text-decoration: none;
	}

	.site-header__nav-utility {
		flex-direction: column;
		align-items: flex-start;
		gap: .5rem;
		margin-top: 1rem;
	}

	.site-header__nav-utility a.online-account,
	.site-header__nav-utility a.lang-switcher {
		color: #fff;
	}

	/* 2026-09-04追記: モバイルのログイン行は、本番実測（premio/_inc/header.php の
	   `<li class="nav-item d-lg-none"><a class="nav-link">オンラインアカウント:...`）
	   に合わせ、他のメニュー項目と同じ「箱の無い1行リンク」にする。以前はデスクトップと
	   同じ`.btn.btn-secondary`のボタン風マークアップを流用していたため、本番には無い
	   灰色の箱がモバイルにだけ出ていた（目視指摘で発覚）。 */
	.site-header__nav-utility a.online-login-mobile {
		display: block;
		color: #fff;
	}
}

/* -------------------------------------------------------------------------
 * 言語切替
 * ---------------------------------------------------------------------- */

.lang-switcher {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}

/* -------------------------------------------------------------------------
 * フッター
 * ---------------------------------------------------------------------- */

.site-footer__menus {
	display: flex;
	flex-direction: column;
}

@media (min-width: 992px) {
	.site-footer__menus {
		flex-direction: row;
		justify-content: space-between;
	}
}

.site-footer__legal-list {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 1rem 0;
}

/* -------------------------------------------------------------------------
 * フッターの配色（本サイトの見た目を再現）
 *
 * 2026-08-22: ヘッダーと同じ理由で配色が丸ごと未実装だった。本サイトの実測値
 * （premio/css/style_other.css）: 外枠`footer.bd-footer`が`#e5090d`、その内側の
 * メニュー4カラムだけが`#ebebeb`の明るいグレー箱（`.container-fluid`）、
 * 法的リンク・コピーライト・ロゴは外枠の赤の上に白文字で乗る。
 *
 * 2026-08-22追記（再指摘で修正）: 本サイトを確認すると、グレー・赤の帯自体は
 * 画面いっぱい（`.container-fluid`）だが、その中のリンク集自体はBootstrapの
 * `.container`（最大幅1140px、中央寄せ）に収まっている。最初の実装はこの内側の
 * `.container`を作らず、リンクをそのまま画面いっぱいに広げてしまっていた
 * （非常に広い画面だと、リンクの間隔だけが不自然に空いて見える）。
 * 新しい要素を増やさずに済むよう、`.container-fluid > .container`の入れ子を
 * DOM追加ではなく1要素のpaddingで再現する（`calc()`で「画面が1140pxより広ければ
 * 余り分を左右均等パディングにする」）。 */

.site-footer {
	background: #e5090d;
}

.site-footer__menus {
	background: #ebebeb;
	color: #333;
	padding: 2rem 1.5rem;
	padding-left: max(1.5rem, calc((100% - 1140px) / 2));
	padding-right: max(1.5rem, calc((100% - 1140px) / 2));
}

/* 2026-09-04追記: 本番実測（`ul.bd-footer-links li { font-size: 0.8rem; }`、
   premio/css/style_other.css）では、4カラムのメニュー項目・見出しとも0.8rem（12.8px）で、
   本文の既定サイズ（16px）よりかなり小さい。テーマ側はこの2箇所に文字サイズの指定が
   無く、既定の16pxのまま表示されていた（目視指摘で発覚）。 */
.site-footer__group summary {
	font-weight: 700;
	color: #333;
	font-size: .8rem;
}

.site-footer__list a {
	color: #333;
	text-decoration: none;
	font-size: .8rem;
}

.site-footer__list a:hover {
	text-decoration: underline;
}

.site-footer__legal {
	padding: .5rem 1.5rem;
	padding-left: max(1.5rem, calc((100% - 1140px) / 2));
	padding-right: max(1.5rem, calc((100% - 1140px) / 2));
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	flex-wrap: wrap;
}

/* 2026-09-04追記: 本番実測（`ul.bd-footer-menu { font-size: 1rem; } ul.bd-footer-menu li
   { font-size: 0.75rem; }`）では、法的リンク行は0.75rem（12px）。同様に指定が無く
   16pxのままだった（目視指摘で発覚）。 */
.site-footer__legal-list a {
	color: #fff;
	font-size: .75rem;
}

.site-footer__legal-list li {
	padding-right: 1rem;
	border-right: 1px solid #fff;
}

.site-footer__legal-list li:last-child {
	border-right: 0;
	padding-right: 0;
}

.site-footer__copyright {
	color: #fff;
	font-size: .75rem;
	margin: 0;
	padding: .5rem 0 1.5rem;
	flex: 1;
	text-align: right;
}

.site-footer__logo {
	max-height: 32px;
	width: auto;
}

/* 2026-08-22追記（本サイトのモバイル実機スクリーンショットとの突き合わせで発覚）:
   本サイトの`ul.bd-footer-menu`は`max-width: 767px`で`li`を`display:block`にし、
   区切りの`border-right`を消して縦積みにしている（`premio/css/style_other.css`実測）。
   これまでのモバイル対応は`justify-content:center`だけで、法的リンクを横1列のまま
   中央寄せしていたため、区切り線が「|」に見えてしまっていた。縦3行
   （個人情報の保護について／会社概要／English）に直す。
   また、モバイル用アコーディオン（`#m-nav-container .card`相当）にも実際は
   白背景・薄い枠線・行区切りの下線があるが、こちらは何も付けておらず、
   4グループが枠の無い一つの塊に見えていた。実測値（`rgba(0,0,0,.125)`の薄い枠線、
   ヘッダー部分は`rgba(0,0,0,.03)`のわずかに暗い背景）に合わせて追加する。 */
@media (max-width: 991.98px) {
	/* 2026-08-22追記（目視指摘で発覚した不具合）: 本サイトのモバイル用アコーディオン
	   （`#m-nav-container`）は`<footer>`の直下にあり、`.container`のような中央寄せの
	   ラッパーを一切持たないため、左右パディングが無い全幅になる（実測で確認）。
	   このプロジェクトの`.site-footer__menus`は「デスクトップでは中央寄せの1140px」
	   という別の要件も持つ同じ要素なので、`max(1.5rem, calc(...))`の左右パディングが
	   モバイルでも最低1.5remだけ残ってしまっていた。モバイルだけ明示的に0に戻す。 */
	.site-footer__menus {
		padding-top: 1rem;
		padding-bottom: 1rem;
		padding-left: 0;
		padding-right: 0;
	}

	.site-footer__group {
		background: #fff;
		border: 1px solid rgba(0, 0, 0, .125);
		border-top: 0;
	}

	.site-footer__group:first-child {
		border-top: 1px solid rgba(0, 0, 0, .125);
	}

	/* 2026-09-04追記: 本番実測（`#m-nav-container .card .card-header a { font-size: 20px;
	   font-weight: 600; }`、`.card-body ul li { font-size: 18px; }`）では、モバイルの
	   フッターアコーディオンはデスクトップの0.8rem（12.8px）より大きい18〜20pxを使う、
	   デスクトップとは別サイズの指定。デスクトップ用に追加した0.8remがそのまま
	   モバイルにも継承され、かえって本番より小さくなってしまうところだったため、
	   モバイル専用に明示し直す。 */
	.site-footer__group summary {
		padding: .625rem 1.25rem;
		background: rgba(0, 0, 0, .03);
		font-size: 20px;
		font-weight: 600;
	}

	.site-footer__list li {
		border-bottom: 1px solid rgba(0, 0, 0, .125);
		padding: .625rem 1.25rem;
		font-size: 18px;
	}

	.site-footer__list li:last-child {
		border-bottom: 0;
	}

	.site-footer__legal {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.site-footer__legal-list {
		display: block;
	}

	/* 2026-09-04追記: 本番実測（`ul.bd-footer-menu li { font-size: 0.75rem; }
	   @media (max-width: 991px) { font-size: 20px !important; }`）では、法的リンク行は
	   デスクトップ0.75rem→モバイル20pxへ逆に大きくなる。コピーライトも同様
	   （`footer p.copyright { font-size: 0.75rem; } @media (max-width: 991px) {
	   font-size: 16px; }`）。デスクトップ用の小さいサイズがモバイルにもそのまま
	   継承されていたため、明示的に上書きする。 */
	.site-footer__legal-list li {
		display: block;
		border-right: 0;
		padding: 0 0 .75rem;
		font-size: 20px;
	}

	/* 2026-09-08追記: 上のliへのfont-size指定だけでは効かない不具合（ユーザーの
	   スクリーンショットで発覚。実際に文字を表示している<a>自身に、メディアクエリの
	   外側で`.site-footer__legal-list a { font-size: .75rem; }`という明示指定が
	   別にあり、liからの継承よりそちらが優先されてしまっていた）。同じ20pxを
	   <a>自身にも明示する。 */
	.site-footer__legal-list a {
		font-size: 20px;
	}

	.site-footer__copyright {
		font-size: 16px;
		text-align: center;
	}
}

/* 2026-08-22: 本サイト（premio/css/style_other.css の #page-top）に合わせる。
   角丸なし、#444444の正方形ボタン。デスクトップ80x80px、モバイル60x60px。 */
.back-to-top {
	position: fixed;
	right: 30px;
	bottom: 40px;
	width: 80px;
	height: 80px;
	display: block;
	text-align: center;
	line-height: 60px;
	font-size: 70px;
	background-color: #444444;
	color: #fff;
	text-decoration: none;
	opacity: .8;
	transition: all ease-in-out .2s;
	z-index: 5;
}

.back-to-top:hover,
.back-to-top:focus {
	opacity: 1;
	color: #fff;
}

@media (max-width: 991.98px) {
	.back-to-top {
		right: 15px;
		bottom: 50px;
		width: 60px;
		height: 60px;
		line-height: 60px;
		font-size: 60px;
	}
}

html {
	scroll-behavior: smooth;
}

/* -------------------------------------------------------------------------
 * ボタン3バリアント（docs/migration-plan.md §5 項目7）
 *
 * レガシーは `btn-top` `btn-other` `btn-red` `btn-d-gray` `btn-danger`
 * `btn-gold-brown` `btn-w-adj` `btn-secondary` `btn-dark` の9クラス名・
 * 約38箇所に分散していた（docs/component-inventory.md）。
 * ヘッダー・フッター（このフェーズの対象）はもともとBootstrapの
 * `.btn.btn-secondary` をそのまま使っており綺麗なので変更していない。
 *
 * 以下はフェーズ4（ページ本文の移行）で使う3バリアントの受け皿。
 * まだどのページにも適用していない。`register_link_ja` / `register_link_en` は
 * GTMの計測に使われている可能性があるクラス名なので、スタイルの都合で
 * リネームしないこと（未解決の質問#4、docs/migration-plan.md §2）。
 * ---------------------------------------------------------------------- */

/*
 * about-premio / about-premio-plus で最初に適用（2026-08-21）。
 * レガシーは `<button onClick="location.href=...">` と
 * `<a><button class="btn-other ...">` の2パターンが混在していたため、
 * 実リンク（`<a>`）に統一する。`<a>` はデフォルトで inline なので、
 * `.btn-other` が前提にしていた width/padding/position を効かせるために
 * display: inline-block をこの3クラスに共通で持たせる。
 * 幅を常に100%にしたい箇所は、既存の `.btn-w-adj` と併用する
 * （widthユーティリティは今回の統合対象である「色バリアント」とは別の関心なので、そのまま残す）。
 */
.btn-cta,
.btn-outline-cta,
.btn-quiet {
	display: inline-block;
	color: #fff;
	border-radius: 0;
	font-size: 17px;
	margin-bottom: 15px;
	padding: 10px 0;
	text-align: center;
	text-decoration: none;
	width: 35%;
	position: relative;
	border: 0;
}

@media screen and (max-width: 991px) {
	.btn-cta,
	.btn-outline-cta,
	.btn-quiet {
		width: 100%;
	}
}

.btn-cta::after,
.btn-outline-cta::after,
.btn-quiet::after {
	font-family: 'Font Awesome 5 Pro';
	content: "\f105";
	position: absolute;
	right: 10px;
}

.btn-cta {
	/* 主要な行動喚起（レガシーの btn-danger / btn-red 相当。実測値 #ed1b24） */
	background-color: #ed1b24;
}

/*
 * 2026-09-03修正: レガシーには実は幅の異なる2つのボタン系統があった。
 * about-premio/about-premio-plusなど（style_other.css）の`.btn-other`は幅35%だが、
 * Home（style_top.css）の`.btn-top`は幅56%で、この2つは別のクラス・別の実測値だった。
 * このテーマでは両方を`.btn-cta`/`.btn-quiet`に統合した際、35%の方だけを採用してしまい、
 * Homeのカード比較ボタン（`btn-top btn-cta`のように`.btn-top`も併記されている）が
 * 本番より狭くなっていた。`.btn-top`が付いている場合だけ、本番同様56%に広げる
 * （モバイル側は`.btn-cta`等の共通ルールがそのまま100%にするので、ここでは触らない）。
 */
@media screen and (min-width: 992px) {
	.btn-top.btn-cta,
	.btn-top.btn-outline-cta,
	.btn-top.btn-quiet {
		width: 56%;
	}
}

.btn-outline-cta {
	/* 次点の行動喚起（レガシーの btn-gold-brown 相当）。
	 * このクラスを使うページがまだ無く、実測できる色がないため未着手。
	 * 使う段になったら実測してここに追加すること。 */
}

.btn-quiet {
	/* 控えめなリンク（レガシーの btn-d-gray 相当。実測値 #555555） */
	background-color: #555555;
}

/* 本番はホバーで見た目が変わらない（レガシーに.btnクラスもホバーCSSも無いため）。
   Bootstrap既定のa:hover下線を打ち消す。 */
.btn-cta:hover,
.btn-outline-cta:hover,
.btn-quiet:hover {
	color: #fff;
	text-decoration: none;
}

/* -------------------------------------------------------------------------
 * フォーカスリング
 *
 * レガシーにはフォーカス時の視覚的フィードバックが無かった
 * （Bootstrap 4のデフォルトのoutline: 0を上書きしていない箇所があった）。
 * キーボード操作の利用者のために明示的に付ける。
 * ---------------------------------------------------------------------- */

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible {
	outline: 3px solid #005fcc;
	outline-offset: 2px;
}

/* 本文中の地の文リンクはレガシー同様、通常時に下線あり・ホバーで下線が消えて色が濃くなる。
   ボタン（.btn-cta等、および素のBootstrap .btn）、tel:リンク（電話番号）は対象外にする。
   2026-09-04: 上記の除外だけでは足りず、トピックナビ（アイコン付きカードリンク、
   id="topic-nav"）にも下線がついてしまう不具合があった。トピックナビのリンクは
   クラスを持たないため:not()で除外できず、代わりに下のID指定ルールで
   （IDはクラスより優先されるため）個別に打ち消している。 */
main a:not(.btn-cta):not(.btn-outline-cta):not(.btn-quiet):not(.btn):not([href^="tel:"]) {
	color: #333;
	text-decoration: underline;
}

main a:not(.btn-cta):not(.btn-outline-cta):not(.btn-quiet):not(.btn):not([href^="tel:"]):hover {
	color: #000;
	text-decoration: none;
}

/* トピックナビ（ホーム下部のアイコン付きカードリンク、よくあるご質問ティザー含む）は
   本文リンクではなくカード型のUIなので、上のルールの対象から外し、本番同様
   下線なし・Bootstrap既定のリンク色のままにする。「FAQ一覧はこちら」等の
   Bootstrap素の.btnボタンもこのセクション内にあるため、:not(.btn)で除外し、
   Bootstrap自身の配色（.btn-dark等）を優先させる。 */
#topic-nav a:not(.btn) {
	color: #007bff;
	text-decoration: none;
}

/* 実測（本番）ではホバーで見た目が変化しない。念のためBootstrap既定の
   ホバー時下線を明示的に打ち消す。 */
#topic-nav a:not(.btn):hover {
	color: #007bff;
	text-decoration: none;
}

/* よくあるご質問ティザー（#top-faq、レガシーCSSで通常時 color:#333 が指定済み）は
   上のトピックナビ共通ルールより優先させ、通常時・ホバーとも本番同様に色を変えない。
   2026-09-04: `#top-faq li a`単体では詳細度が`#topic-nav a:not(.btn)`
   （:not()の中身も詳細度に加算されるため実質1クラス分）に負け、通常時から
   青字になってしまっていた（:hoverだけの問題ではなかった）。祖先IDを2つ重ねて
   通常時・ホバーの両方で確実に上回らせる。 */
#topic-nav #top-faq li a {
	color: #333;
	text-decoration: none;
}

#topic-nav #top-faq li a:hover {
	color: #333;
	text-decoration: none;
}

/* -------------------------------------------------------------------------
 * 標準ブロックで組む固定ページ本文（privacy-policy, about-company ほか）
 *
 * 2026-08-20: docs/migration-plan.md §3/§4で決まっていた通り、これらのページは
 * レガシーのHTMLではなく標準ブロック（見出し・段落・リスト・カラム）で組む。
 * しかしそのクラス名（wp-block-heading等）に対応するスタイルがこれまで
 * 一行も無かった（style_top.css/style_other.cssはレガシーの生HTML用クラスしか
 * 持っていない）ため、privacy-policy/about-companyを作った際に「スタイルが
 * 当たっていない」ように見えた。ここでその最小限を補う。
 *
 * レガシーは本文を `<main class="container">` （中央寄せ・最大幅あり）に入れつつ、
 * 見出し画像だけは `<slider class="container-fluid">` として main の外、
 * 画面幅いっぱいに置いていた。同じ見た目を標準ブロックで再現するため、
 * `.entry-content` の直属の子は既定でコンテンツ幅に収め、`alignfull`
 * （画像ブロックの「全幅」設定）を指定した子だけ画面幅いっぱいに戻す。
 * ---------------------------------------------------------------------- */

/*
 * 2026-09-03修正（1回目、誤り）: `.entry-content`直属の子を実際に標準ブロックが
 * 出力するクラスだけに絞る実装を試したが、これはcontact/guide/about-premio/
 * about-premio-plusのようにCustom HTMLブロックでレガシーの`<section>`を
 * そのまま流し込むページ（Lowティア）の本文セクション（例: contactの
 * `#multi-outline`）まで対象外にしてしまい、本来1140pxに収まるべき箇所が
 * 画面幅いっぱいに広がる逆方向の不具合を生んだ（レガシーはこれらのページを
 * すべて`<main class="container">`で包んでおり、本番でも1140px幅）。
 *
 * 2026-09-03修正（2回目、これが正しい）: 一律「`.entry-content`直属の子は
 * 幅1140pxに収める」ルールに戻し、例外はHomeページ（`index.php`）固有の
 * 生セクションだけに限定する。Homeだけはレガシーで`<main class="container">`
 * に包まれておらず、`#apply-method`（背景画像）・`#benefits`・
 * `#card-comparison`の3セクションは本番で画面幅いっぱいに表示される
 * （本番で実測済み）。この3つのidは`about-premio`/`about-premio-plus`の
 * ページにも同名で存在するが、そちらは`<main class="container">`に包まれて
 * おり本番でも1140px幅に収まっている（本番で実測済み）ため、`body.home`で
 * スコープしてHomeページだけを例外にする。
 */
.entry-content > * {
	max-width: 1140px; /* Bootstrap 4 の .container の最大幅（lg以上）に合わせた */
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
}

.entry-content > .alignfull {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

body.home .entry-content > #apply-method,
body.home .entry-content > #benefits,
body.home .entry-content > #card-comparison {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

/*
 * 2026-09-03修正: Homeの「お得な特典」（`#benefits`）4枠の、枠線付きボックス
 * （`.outline`）の高さがバラバラに見える不具合。Bootstrapの`.row`はflexなので
 * 4つの`.col-lg-3`自体は既に高さが揃っているが（`align-items: stretch`が既定）、
 * その中の`.outline`は`.col`いっぱいに伸びるわけではなく、自分の中身（見出しが
 * 1行か2行か）の高さにしかならない。レガシーはこれをjquery.tile.jsで実行時に
 * 高さを揃えていたが（Home移行時にjQuery依存ごと廃止済み、project-history.md
 * 2026-08-22参照）、代わりのCSSが無かったため、`.col`側は揃っていても
 * `.outline`の枠線の下端だけが見出しの行数分ズレて見えていた。
 * `.outline`を`.col`いっぱいに伸ばすだけで揃う。
 */
#benefits .outline {
	height: 100%;
}

/*
 * 2026-09-03修正: `.entry-content`自体への一律の上下パディングも同じ理由で
 * 削除した。本番を実測すると、ヘッダー直下のヒーロー画像もフッター直前の
 * 最後のセクションも、隙間はゼロ（見出しの上マージン・段落の下マージンだけで
 * 十分な余白になっている）。この`padding-top: 2rem`がHomeページのヒーロー画像を
 * ヘッダーから32px引き離し、`padding-bottom: 3rem`がフッター前に48pxの
 * 余分な隙間を作っていた。見出し・段落側の個別マージン（このファイル内の
 * 別ルール）は変更していないので、privacy-policy/about-companyの見た目は
 * このパディング削除の影響を受けない。
 */

.entry-content .wp-block-image.alignfull {
	padding-top: 0;
	margin-top: 0;
}

.entry-content .wp-block-heading {
	margin-top: 1.5rem;
	margin-bottom: 1rem;
}

.entry-content > .wp-block-heading:first-child,
.entry-content > .wp-block-image.alignfull + .wp-block-heading {
	margin-top: 2rem;
}

.entry-content p {
	line-height: 1.8;
	margin-bottom: 1.25rem;
}

/* 2026-09-09追記: 上記のline-height:1.8は標準ブロック向け（about-company等）の
 * 可読性目的の値で、legacyには対応する指定が無い。about-premio・about-premio-plus
 * の「さらなる特典」ボックス（.benefit-container .text-container(-lg) p）も同じ
 * `.entry-content`配下にあるためこの1.8が意図せず継承され、本文が本番実測（1.5、
 * Bootstrap既定）より縦に間延びし、高さ固定ボックス内の下側余白が本番より狭く
 * 見える不具合（特に文字数の多い「オンラインバンキング」で顕著）の原因になっていた。
 * ボックス内だけ本番実測の1.5に戻す。 */
.benefit-container .text-container p,
.benefit-container .text-container-lg p {
	line-height: 1.5;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.5rem;
	margin-bottom: 1.25rem;
}

.entry-content li {
	margin-bottom: .5rem;
}

.entry-content .wp-block-columns {
	gap: 2rem;
	margin-bottom: 1.5rem;
}

/* -------------------------------------------------------------------------
 * contact ページ（Custom HTMLブロックでレガシーの #multi-outline 構造を再利用）
 *
 * 2026-08-20: レガシーは電話番号を「デスクトップ用（地の文）」と
 * 「モバイル用（tel:リンク）」の2要素で出し分けていた（component-inventory.md 不具合#6）。
 * ここでは`<a href="tel:...">`を1つだけ出し、CSSで見た目を地の文と揃える
 * （`color: inherit`は style_other.css 側に既にあるが、`text-decoration`は
 * 無かったため、ここで下線だけ消す）。
 * ---------------------------------------------------------------------- */

#multi-outline h4 a {
	text-decoration: none;
}

/* -------------------------------------------------------------------------
 * faq ページ（page-faq.php。CPT `faq` を <details>/<summary> で表示）
 *
 * 2026-08-21: レガシーの `<p class="sub_line">`（見出しの役割をする段落。
 * migration-plan.md §5 項目19の不具合）を `<h3>` に置き換えつつ、見た目は
 * レガシーの `#multi-bgbox p.sub_line`（style_other.css、do-not-edit）と揃える。
 *
 * アコーディオンはBootstrapの `.collapse`（JS必須、キーボード操作不可。
 * component-inventory.md 不具合#14）をやめ、ネイティブ `<details>/<summary>` に
 * 置き換えた。見た目はBootstrapの `.card`/`.card-header`/`.card-body` を
 * そのまま流用するため、新規CSSは開閉インジケーターの回転とデフォルトの
 * マーカー除去だけで済む。幅1140pxへの制約とセンタリングは、
 * `.entry-content > .faq-accordion`として上の節の対象リストに明示的に
 * 含めている（2026-09-03、`.entry-content > *`の一律ルールをやめた際に、
 * ここだけ見落とすとアコーディオンが画面幅いっぱいに広がってしまうため）。
 * ---------------------------------------------------------------------- */

.faq-category-heading {
	background-color: #ed1b24;
	color: #fff;
	padding: 6px 0 3px;
	font-weight: 700;
	font-size: 1.125rem;
	margin-top: 2rem;
	margin-bottom: 1.8rem;
	text-align: center;
}

.faq-category-heading:first-of-type {
	margin-top: 0;
}

/* 2026-09-08追記: FAQページ最後の項目（解約手続き）の直後にフッターが
   隙間なく始まってしまう不具合（本番はある）。2026-09-03に`.entry-content`の
   一律上下パディングを削除した際、他ページは見出し・段落自身のマージンで
   十分だったが、`.faq-accordion`（<details>/<summary>）にはその余白が無いことが
   見落とされていた。このページでのみ使うクラスなので、ここに直接余白を足す。 */
.faq-accordion {
	margin-bottom: 3rem;
}

.faq-accordion details.card {
	margin-bottom: -1px;
	border-radius: 0;
}

/* 2026-09-08修正: 閉じている項目（.collapsedの本番実測）は本番では薄いグレーに
   見えるが、開発は真っ白に見える不具合。レガシー（style_other.css
   `div.faq #accordion div.btn-link.collapsed { background-color: inherit; }`）は
   Bootstrapの`.card-header`既定色`rgba(0,0,0,.03)`を継承していただけで、
   「inherit」自体が薄いグレーの正体ではなかった。Bootstrapを使わない移行後は
   継承元が無いため、その既定色を直接指定する。 */
.faq-accordion details.card > summary.card-header {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	color: #333;
	background-color: rgba(0, 0, 0, 0.03);
	transition: background-color ease-in-out .2s;
}

.faq-accordion details.card > summary.card-header::-webkit-details-marker {
	display: none;
}

/* 「Q」バッジ。レガシー（style_other.css `div.faq #accordion div.btn-link::before`）の実測値。 */
.faq-accordion details.card > summary.card-header::before {
	content: "Q";
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-right: 0.5rem;
	border-radius: 50%;
	border: 1.5px solid #b10000;
	color: #b10000;
	font-size: 1rem;
	background-color: transparent;
	transition: background-color ease-in-out .4s;
}

.faq-accordion details.card > summary.card-header i {
	transition: transform 0.2s ease;
	flex-shrink: 0;
	margin-left: auto;
	padding-left: 1rem;
	color: #b10000;
}

.faq-accordion details.card[open] > summary.card-header i {
	transform: rotate(90deg);
}

/* 開いている項目は背景・Qバッジの塗りを本番と同じ色にする。閉じていても
   ホバーで同じ色を先出しし、レガシーのホバー時プレビュー挙動を再現する。 */
.faq-accordion details.card[open] > summary.card-header,
.faq-accordion details.card > summary.card-header:hover {
	background-color: #FFF5E8;
}

.faq-accordion details.card[open] > summary.card-header::before,
.faq-accordion details.card > summary.card-header:hover::before {
	background-color: #FFDFB3;
}

.faq-accordion details.card .card-body {
	text-align: left;
	display: flex;
	align-items: flex-start;
}

/* 「A」バッジ。レガシー（`div.faq #accordion div.card-body::before`）の実測値。塗りは無し。 */
.faq-accordion details.card .card-body::before {
	content: "A";
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-right: 0.5rem;
	border-radius: 50%;
	border: 1.5px solid #444;
	color: #444;
	font-size: 1rem;
}

/* -------------------------------------------------------------------------
 * Premio Plusカードについてページ（JA: post ID 180 / EN: post ID 185）専用スタイル
 *
 * レガシー（premio/css/style_other.css）は、Premio Plusページの特典ボックス
 * （about-premio/about-premio-plusで共有している同期パターンの中に、それぞれの
 * ボックス自身のラッパー`<div class="benefit-container">`が含まれている。ラッパーの
 * クラス自体を書き換えると about-premio 側も一緒に金色になってしまうため、
 * パターンやページ本文には触れず、ページ固有のCSSだけで配色を上書きする
 * （about-companyの`.page-id-{N}`スコープと同じ手法。2026-09-04）。
 *
 * `.plus { border-bottom: 5px solid #ab8b2e !important; } .plus h3 { color:
 * #ab8b2e !important; }`（レガシーの実測値）と同じ配色を、クラスの有無ではなく
 * ページ全体に対して適用する。
 * ---------------------------------------------------------------------- */

.page-id-180 .benefit-container,
.page-id-185 .benefit-container {
	border-bottom: 5px solid #ab8b2e;
}

.page-id-180 .benefit-container h3,
.page-id-185 .benefit-container h3 {
	color: #ab8b2e;
}

/* -------------------------------------------------------------------------
 * オンラインマニュアル（フェーズ5）
 *
 * 9ページ共通の「オンラインアカウントの新規登録/ログインはこちら」ボックス。
 * レガシーでは online-manual/_inc/nav-manuals.php の中に9ページ分書かれていた
 * インラインstyleを、共通スタイルシートに1回だけ書く形に統合した。
 *
 * ピルナビ自体の見た目（.navpill-container, .nav-linkのグラデーション等）は
 * style_other.css の `#guide` スコープのルールをそのまま使う。オンラインマニュアルの
 * ナビも id="guide" でラップしており（レガシーのnav-manuals.phpがguideページ用に
 * 作られたテンプレートをそのまま流用していたため）、そのまま再利用できる。
 * 実害のない命名の残り物であり、CSSを増やさずに済むため意図的に直していない。
 * ---------------------------------------------------------------------- */
#guide .apply_online {
	background-color: #f5f3f2;
	padding: 20px 30px 16px 30px;
	text-align: center;
}

/* 2026-09-09修正: 元は`#guide h5`という広いセレクタだったため、id="guide"を
 * 共有しているオンラインマニュアル9ページ・guideページの「オンラインアカウントの
 * 新規登録/ログインはこちら」ボックス内のh5だけでなく、guideページ自身の本文中の
 * 無関係なh5（「自動音声でのアクティベーション手順」等、各タブの見出し）まで
 * ネズミ色(#5b798b)に染めてしまっていた（本番は他の本文見出しと同じ黒#333）。
 * `.apply_online`ボックス内のh5だけに絞る。 */
.apply_online h5 {
	color: #5b798b;
}

/* レガシーの `.btn-gold-brown`（実測値 #5b798b）相当。
 * .btn-cta/.btn-quiet/.btn-outline-cta の3バリアント（上記）とは見た目の設計が違う
 * （Bootstrapの.btn.btn-lgそのまま、chevronなし、幅も内容依存）ため、
 * あの3バリアントには含めず、この1箇所専用のクラスとして独立させる。 */
.btn-online-manual-cta {
	background-color: #5b798b;
}

/* オンラインマニュアルのPDFビューアーiframeの高さ。id="online-manual"はguideページには
 * 存在しないため、素の#online-manualスコープで問題ない。 */
#online-manual iframe {
	height: 1370px;
}

@media all and (max-width: 768px) {
	#online-manual iframe {
		height: 100vh;
	}
}

/* オンラインマニュアルのナビだけに必要な幅調整。9項目中「携帯電話･Eメールアドレス変更」が
 * 長いため、guideページの3タブ用ピル（#guideスコープ、幅調整なし）とは別に
 * .manual-nav で明示的にスコープし、guideページの見た目に影響しないようにする。 */
.manual-nav .nav-link {
	min-width: 300px;
}

@media all and (max-width: 460px) {
	.manual-nav .nav {
		display: block;
	}
	.manual-nav .nav-link {
		min-width: 100%;
		padding: 0.2rem 1rem 0.75rem !important;
	}
}

.manual-nav .active .fa-angle-right::before {
	content: "\f107" !important;
}

/* 2026-09-18追記（検収指摘再確認）: このナビ（9ページ共通で複製されているHTML、
   `<i class="text-nowrap">見出し文字<span><i class="fal fa-angle-right"></i></span></i>`）
   の`<i class="text-nowrap">`はレガシーからそのまま持ち越されたマークアップだが、
   ブラウザ既定の`i`要素はfont-style:italicになるため、英単語「AutoPay」の"Pay"部分
   だけ斜体に見える不具合があった（他の項目は日本語のため見た目上目立たなかった）。
   最初`<i>`を`<span>`に置換して直したが、これは`style_other.css`の
   `#guide .navpill-container li a span { font-size: 30px; ... }`という
   レガシー由来のルール（本番では対象が`i`タグのため実際には一度も効いていなかった
   休眠ルール）を誤って有効化してしまい、9項目すべての2語目の文字サイズが本番より
   大幅に大きくなる・セルの高さが崩れるという新たな不具合を生んだ（検収指摘で発覚、
   `<i>`に戻して再検証）。
   タグ自体は`<i>`のまま維持し、`.text-nowrap`クラスに対してfont-styleだけを
   normalに戻すことで、休眠ルールを起こさずにイタリック表示のみを解消する。 */
.manual-nav .text-nowrap {
	font-style: normal;
}

/* 2026-09-08追記: 現在地（アクティブ）のピルだけ薄い赤系グラデーションになる見た目が
   本番に無かった不具合（ユーザー指摘で発覚）。レガシー（premio/online-manual/_inc/
   nav-manuals.php、9ページ共通で読み込まれるインラインstyle）の`a.active`ルールを
   移植し忘れていた。style_other.cssの`#guide .navpill-container li a.active`
   （border+黒文字のみ、ご利用ガイドページの3タブ用）とは別物で、こちらは
   オンラインマニュアルの9項目ピル専用のため、guideページに影響しないよう
   `.manual-nav`でスコープする。 */
.manual-nav .nav-link.active {
	background: linear-gradient(to bottom, #e3cbcc 0%, #fff 99%) !important;
}

/* 2026-09-18追記（検収指摘再確認）: このナビのHTML（<li class="nav-item">）は
   ページ本文（.entry-content）の中に直接埋め込まれているため、記事内の箇条書き用に
   定義している`.entry-content li { margin-bottom: .5rem; }`（本ファイル内、上部）が
   意図せず適用され、3段に折り返した各行の間に本番には無い8pxの隙間ができていた
   （本番はこの9タイルがそもそも記事本文の箇条書きではなく、隙間なく並ぶ設計）。
   `.entry-content li`自体は通常の本文中の箇条書きに必要なため変更せず、
   `.manual-nav`配下の`.nav-item`だけを0に戻す。 */
.manual-nav .nav-item {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
 * 会社概要ページ（JA: post ID 131 / EN: post ID 134）専用スタイル
 *
 * 2026-09-04: 目視指摘で発覚。このページは標準ブロック（Medium tier、
 * migration-plan.md §4）で構築されているが、本番（`premio/css/style_other.css`
 * `.sec-init`・`.intro`・`.company-info-container`。JA・ENとも同じ見た目であることを
 * 実測確認済み）はこのページ専用の見た目（見出し・導入文の中央寄せ、2カラムの見出しを
 * 暗い背景の箱にする、箇条書きを赤い三角アイコンにする）を持っており、標準ブロックの
 * 既定の見た目のままでは再現されない。WordPressコアが固定ページへ自動付与する
 * `.page-id-131`/`.page-id-134`をスコープに使う（`body.home`と同じ考え方）。
 * ページを作り直してIDが変わった場合は、実際のpost IDに書き換えること。
 * ---------------------------------------------------------------------- */

.page-id-131 .entry-content > h2.wp-block-heading,
.page-id-134 .entry-content > h2.wp-block-heading {
	text-align: center;
}

.page-id-131 .entry-content > h2.wp-block-heading + p,
.page-id-134 .entry-content > h2.wp-block-heading + p {
	text-align: center;
	margin-bottom: 50px;
}

@media (min-width: 992px) {
	/* JA(880px)とEN(728px)でlegacyのカラム幅自体が異なるため個別指定
	   （2026-09-08、EN実測728pxが本番と不一致だったため分離） */
	.page-id-131 .entry-content > h2.wp-block-heading + p {
		max-width: 880px;
		margin-left: auto;
		margin-right: auto;
	}
	.page-id-134 .entry-content > h2.wp-block-heading + p {
		max-width: 728px;
		margin-left: auto;
		margin-right: auto;
	}
}

.page-id-131 .wp-block-column h3.wp-block-heading,
.page-id-134 .wp-block-column h3.wp-block-heading {
	font-family: "source-han-serif-japanese", "游明朝", YuMincho, "ヒラギノ明朝 Pr6 W6", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", serif;
	font-size: 1.1em;
	font-weight: 600;
	margin-bottom: 15px;
	padding: 7px 25px;
	text-align: left;
	background-color: #444;
	color: #fff;
}

.page-id-131 .wp-block-column ul.wp-block-list,
.page-id-134 .wp-block-column ul.wp-block-list {
	list-style: none;
	padding-left: 25px;
	margin-bottom: 0;
}

.page-id-131 .wp-block-column ul.wp-block-list li,
.page-id-134 .wp-block-column ul.wp-block-list li {
	position: relative;
	padding-bottom: 7px;
}

.page-id-131 .wp-block-column ul.wp-block-list li:last-child,
.page-id-134 .wp-block-column ul.wp-block-list li:last-child {
	padding-bottom: 0;
}

.page-id-131 .wp-block-column ul.wp-block-list li::before,
.page-id-134 .wp-block-column ul.wp-block-list li::before {
	font-family: "Font Awesome 5 Pro";
	content: "\f0da";
	color: #e5090d;
	position: absolute;
	left: -15px;
}

/* 2026-09-04追記: ご利用方法ページ等の電話番号は、レガシー（premio/guide/index.php）では
   `<span class="text-danger">`（赤字）またはプレーンなテキストのままで、リンクにはなっていない。
   移行時にtel:リンク化した際、リンク自体の既定色・下線が親の`.text-danger`の赤色より優先されてしまい、
   赤字のはずの電話番号が下線付きのグレーで表示されていた（ユーザー指摘で発覚）。tel:リンクの色・下線を
   親要素から継承させることで、`.text-danger`内では赤字・下線なし、それ以外では本文と同じ色・下線なし
   （レガシーがプレーンテキストなのと同じ見え方）に統一する。 */
.content-container a[href^="tel:"] {
	color: inherit;
	text-decoration: none;
}


/* -------------------------------------------------------------------------
 * 2026-09-08追記: Home（JA）の特典見出しの改行制御
 *
 * レガシー（premio/index.php）は、デスクトップ幅だけ特定の位置で強制改行し
 * （`<br class="d-none d-lg-block">`）、モバイル幅は別に用意した複製見出しを
 * 改行無しで自然に折り返させていた（`.sp-wrap.d-block.d-lg-none`）。
 * Bootstrapの表示切替クラスやモバイル用の複製見出しを増やすのではなく、
 * 「モバイルでは非表示、lg以上でだけ表示するbr」という最小のユーティリティ
 * クラス1つで同じ見た目を1つの見出しのまま再現する。
 * ---------------------------------------------------------------------- */
.lg-break {
	display: none;
}

@media (min-width: 992px) {
	.lg-break {
		display: block;
	}
}

/* -------------------------------------------------------------------------
 * 2026-09-08追記: 「さらなる特典」カードの高さ揃え（.h-adj）
 *
 * ページ本文には`h-adj`クラスが既に付与されていた（「24時間 日本語・英語対応
 * 緊急サポート」「オンラインバンキング」の2枚）が、対応するCSSルール自体が
 * theme.cssに存在しなかったため、他のカードよりPaddingが詰まって見える
 * 不具合になっていた（レガシー: premio/css/style_other.css `.h-adj`の実測値）。
 * about-premio・about-premio-plusの両ページ（JA/EN）で共有している。
 * ---------------------------------------------------------------------- */
.benefit-container .h-adj {
	height: 210px !important;
}

html[lang="en-US"] .benefit-container .h-adj {
	height: 273px !important;
}

@media screen and (max-width: 991px) {
	.benefit-container .h-adj,
	html[lang="en-US"] .benefit-container .h-adj {
		height: auto !important;
	}
}

/* 2026-09-08 追記2: about-premio-plus（EN, post 185）だけ、上記の高さ調整を
 * 打ち消す例外が必要と判明。about-premioとabout-premio-plusの「24 Hour Bilingual
 * Emergency Support」「Online Banking」の2ボックスはWordPressの同期パターンを
 * 共有しており、about-premio(EN)側の本文に元々ついていた`h-adj`クラスが
 * about-premio-plus(EN)側にもそのまま出力されてしまう。しかしlegacy本番
 * （/en/about-premio-plus/）を実測すると、この2ボックスにh-adjは付いておらず、
 * 4ボックスとも均等な高さ（290px, containerは483px）になっている。about-premio(EN)
 * 側は逆に4ボックス全てにh-adjが必要（本番実測273px/466px）なため、パターン側の
 * クラスは変更できず、post 185だけをCSSで元の高さに戻す。 */
html[lang="en-US"] .page-id-185 .benefit-container .h-adj {
	height: 290px !important;
}

@media screen and (max-width: 991px) {
	.page-id-185 .benefit-container .h-adj {
		height: auto !important;
	}
}

/* 2026-09-08追記: 会社概要ページ、本文最後の項目の下、フッターまでの余白が
   本番より若干狭い（本番実測ではないが、ユーザー指摘に基づく微調整）。
   about-companyページ（JA: post ID 131 / EN: post ID 134）専用のスコープで、
   FAQページの余白（上の`.faq-accordion`）と揃える。 */
.page-id-131 .entry-content > *:last-child,
.page-id-134 .entry-content > *:last-child {
	margin-bottom: 3rem;
}

/* -------------------------------------------------------------------------
 * プライバシーポリシーページ（JA: post ID 123 / EN: post ID 128）専用スタイル
 *
 * 2026-09-18追記（検収指摘再確認）: このページも会社概要ページ（上記）と同じく
 * 標準ブロックで構築されているが、本番（premio/privacy-policy/index.php、
 * en/privacy-policy/index.php）は`.sec-init { text-align: center; }`
 * （style_other.css）のスコープ内にあるため、見出し・本文とも中央寄せになっている。
 * 本文の段落(<p>)はWordPress側で既に「中央揃え」ブロックとして中央寄せ済みだったが、
 * 見出し(h2)は中央寄せが移植されておらず左寄せのまま表示されていた
 * （検収指摘で発覚、`.page-id-131`/`.page-id-134`と同じ考え方でスコープする）。
 * ページを作り直してIDが変わった場合は、実際のpost IDに書き換えること。 */
.page-id-123 .entry-content > h2.wp-block-heading,
.page-id-128 .entry-content > h2.wp-block-heading {
	text-align: center;
}

/* 2026-09-19追記（検収指摘再確認、その後の再指摘で調整）: 本番は`.sec-init`
   （style_other.css）の`padding: 1.5rem 1.5rem`により、見出し・本文を含む
   セクション全体の上下に余白が確保されており、見た目上は上下ほぼ均等な余白に
   見える。最初、本文下の余白不足だけを見て4.5rem(約72px)を追加したところ、
   今度は下だけ余白が付きすぎて不格好になった（検収指摘、「下の方が余白が
   ありすぎる」「上にも少し足した方がいい」）。会社概要ページ（`.page-id-131`/
   `.page-id-134`）で既に使っている3rem(約48px)に揃え、見出し上側にも同じ
   3remを明示的に指定することで、上下の余白感を揃える
   （見出し上はもともと他ページ共通ルールの2rem(32px)だけだった）。 */
.page-id-123 .entry-content > .wp-block-image.alignfull + h2.wp-block-heading,
.page-id-128 .entry-content > .wp-block-image.alignfull + h2.wp-block-heading {
	margin-top: 3rem;
}

.page-id-123 .entry-content > *:last-child,
.page-id-128 .entry-content > *:last-child {
	margin-bottom: 3rem;
}
