/**
 * jifma_v3 main CSS（旧 style.css の上書き／追加分のみ）
 *
 * 旧 Jifma は Slick.js（jQuery 依存）で MV スライダーを実装していたが、
 * jifma_v3 では CSS Grid stacking + Vanilla JS に置き換える。
 * prefers-reduced-motion を尊重し、視覚刺激への配慮も組み込む。
 *
 * @package Jifma_v3
 * @since   3.0.0
 */

/* ============================================
 * Modern smooth scroll（旧 common.js の jQuery アニメ置換）
 * ============================================ */
html {
    scroll-behavior: smooth;
    /* ヘッダー固定分のオフセット。レイアウトに合わせて調整 */
    scroll-padding-top: var(--jifma-header-offset, 80px);
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

/* ============================================
 * MV スライダー（メインビジュアル）
 *
 * 構造:
 *   <div class="mv-block" data-mv-slider data-mv-interval="4000">
 *     <ul class="mv-list" role="tabpanel">
 *       <li class="mv-item mv01" data-active>…</li>
 *       <li class="mv-item mv02">…</li>
 *       <li class="mv-item mv03">…</li>
 *     </ul>
 *     <ol class="mv-dots" role="tablist">…</ol>
 *   </div>
 *
 * - CSS Grid stacking で 3 枚を完全に重ねる
 * - data-active がついている要素だけ opacity: 1
 * - フェードのみ。reduced-motion ユーザにはトランジションなし
 * ============================================ */

.mv-block {
    position: relative;
    overflow: hidden;
}

/*
 * 旧 _top.scss は `.mv-list { opacity: 0 }` で初期化し、Slick が `.slick-initialized`
 * クラスを付けた瞬間に表示する設計だった。
 * vanilla 実装では Slick を使わないので、その「初期 opacity: 0」を打ち消す必要がある。
 * セレクタは旧と同じ specificity (0,0,3) でこちらが後勝ち。
 */
.top .mv-block .mv-list {
    opacity: 1;
    transition: none;
}

.mv-list {
    display: grid;
    grid-template-areas: "stack";
    list-style: none;
    margin: 0;
    padding: 0;
    /* 旧 Slick が overrides していた width: 5000px などを無効化 */
    width: 100%;
}

.mv-item {
    grid-area: stack;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 800ms ease-in-out, visibility 0s linear 800ms;
    /* 旧 .slick-slide のスタイルを上書き */
    width: 100% !important;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    float: none !important;
    display: block !important;
}

.mv-item[data-active] {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition: opacity 800ms ease-in-out, visibility 0s linear 0s;
    z-index: 1; /* ホバーやリンクをトップに */
}

@media (prefers-reduced-motion: reduce) {
    .mv-item { transition: none; }
}

/* ============================================
 * MV dots（旧 .slick-dots の代替）
 * ============================================ */

/* 旧 slick-dots の見た目に合わせる：小さめの「•」ドット＋opacityでアクティブ表現。 */
.mv-dots {
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.mv-dots li {
    display: inline-flex;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mv-dot {
    display: block;
    width: 20px;
    height: 20px;
    margin: 0 5px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #000;
    font-size: 6px;
    line-height: 20px;
    text-align: center;
    opacity: 0.25;
    cursor: pointer;
    transition: opacity 200ms ease;
    -webkit-font-smoothing: antialiased;
}

/* 文字を持たない <button> でも「•」を出すための擬似要素。 */
.mv-dot::before {
    content: "\2022"; /* • */
}

.mv-dot:hover {
    opacity: 1;
}

.mv-dot[aria-selected="true"] {
    opacity: 0.75;
}

.mv-dot:focus-visible {
    outline: 2px solid rgba(0, 0, 0, 0.5);
    outline-offset: 2px;
}

/* ============================================
 * トップ：会員検索への入口ボタン（Phase 8-D 入口）
 * ============================================ */
.top-member-entry {
	text-align: center;
}
.top-member-entry-btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 16px 48px;
	background: #144a6c;
	color: #fff;
	border-radius: 8px;
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(20, 74, 108, .2);
	transition: background .15s, transform .15s, box-shadow .15s;
}
.top-member-entry-btn:hover {
	background: #0f3a55;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(20, 74, 108, .28);
}
.top-member-entry-main {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .04em;
}
.top-member-entry-sub {
	font-size: 12px;
	opacity: .85;
}

/* ============================================
 * ヘッダー検索：虫眼鏡アイコン（旧CSS）＋プレースホルダ表示＋縦中央
 * 旧CSSは .search-text input::placeholder を透明にしているので、
 * 「キーワードで検索」を見せるために上書きする。縦中央は line-height:36px。
 * ============================================ */
.header-top-nav-item.search-block .search-text input::placeholder,
.header-bottom .only-sp-block .search-block .search-text input::placeholder {
	color: #888;
	opacity: 1;
}
.header-top-nav-item.search-block .search-text input,
.header-bottom .only-sp-block .search-block .search-text input {
	line-height: 36px;
}

/* ===== 会員タグ共通：一覧(.ms-tag) と 詳細(.sm-tag) のベース形状を一元化 =====
   ・形状（白背景・ピル・枠線・サイズ）はここが唯一の定義（両ページで共通）
   ・色は各ページの .ms-tag--* / .sm-tag--* で付与（炉種=#144a6c / 大分類=#4b5563 / 賛助=#2f6b4f）
   ※ main.css は全ページで legacy-style の後に読み込まれ、会員一覧・詳細の両方に効く */
.ms-tag,
.sm-tag {
	display: inline-block;
	background: #fff;
	padding: 3px 12px;
	border-radius: 999px; /* ピル */
	font-size: 12px;
	font-weight: 600;
	border: 1px solid currentColor;
}
@media (max-width: 700px) {
	.ms-tag,
	.sm-tag { font-size: 10px; } /* スマホ時は一覧・詳細とも小さく */
}

/* ===== 会員系カラートークン（一覧・詳細で共通の単一ソース） =====
   炉種/大分類/賛助/罫線は両ページ同値のためここで一元定義。
   ※ muted だけは一覧(#6b7280)・詳細(#9ca3af)で意図的に異なるため各ページに残す。 */
:root {
	--jifma-furnace: #144a6c; /* 炉種分類 */
	--jifma-cat:     #4b5563; /* 製品大分類 */
	--jifma-support: #2f6b4f; /* 賛助識別 */
	--jifma-line:    #e5e7eb; /* 罫線・カード枠線 */
}

/* ===== 会員カード面の共通形状（一覧 .ms-box/.ms-card・詳細 .sm-card） =====
   背景・枠線・角丸を一元化。影だけは検索(0 1px 3px)と詳細(0 1px 4px)で微差があるため各ページに残す。 */
.ms-box,
.ms-card,
.sm-card {
	background: #fff;
	border: 1px solid var(--jifma-line);
	border-radius: 10px;
}

/* トピックス・会員向けニュース一覧：本文の上余白を詰める */
.second .topics .news-item .news-text,
.second .member .news-item .news-text {
	margin-top: 0;
}

/* ===== モーダル（ネイティブ <dialog>・旧 modaal の置換） ===== */
.jv-modal {
	position: relative;
	border: 0;
	padding: 0;
	max-width: min(900px, 92vw);
	width: auto;
	border-radius: 8px;
	overflow: visible;
	box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
}
.jv-modal::backdrop {
	background: rgba(0, 0, 0, .6);
}
.jv-modal-close {
	position: absolute;
	top: -16px;
	right: -16px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 0;
	background: #144a6c;
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
}
.jv-modal-body {
	padding: 24px;
	max-height: 86vh;
	overflow: auto;
}
.jv-modal-video {
	position: relative;
	width: min(800px, 86vw);
	aspect-ratio: 16 / 9;
}
.jv-modal-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ダウンロードボタン（WordPress ファイルブロック）：余白を確保して押しやすく（SDGs 等） */
.wp-block-file__button {
	padding: 5px 15px;
}
/* 連続するファイルブロック同士の隙間（SDGs のダウンロード一覧など） */
.wp-block-file + .wp-block-file {
	margin-top: 16px;
}
/* 本文ボックス（.third-page-contents-inner）の直後の要素に上余白 */
.second .third-page-contents-inner + * {
	margin-top: 30px;
}

/* THERMOTEC スライダー（Swiper）：dots はスライダー枠の外に出し、写真の下に通常フローで配置（被らない） */
.thermotec-dots {
	position: static !important; /* Swiper 既定の absolute を解除して下に並べる */
	margin-top: 12px;
	text-align: center;
}
/* 680px以下は dots 非表示（旧 slick の responsive 準拠） */
@media screen and (max-width: 680px) {
	.thermotec-dots { display: none; }
}

/* ハンバーガー→×時：中央バーは右へ動かさず、その場でフェアウトして消す */
.header.open .sp-menu .sp-menu-btn .line:nth-of-type(2) {
	transform: none;
	opacity: 0;
}

/* ===== アンカーのスムーススクロール（ネイティブCSS） =====
   JSアニメは使わず scroll-behavior:smooth。固定ヘッダー分のズレは scroll-padding-top で調整。
   （legacy common.js のクリック乗っ取りは main.js 側で止め、ネイティブ挙動に任せる） */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px; /* PCの固定ヘッダー分（必要に応じて調整） */
}
@media screen and (max-width: 1100px) {
	html { scroll-padding-top: 65px; } /* スマホのヘッダー分（必要に応じて調整） */
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; } /* モーション低減設定では即時 */
}
/* legacy の .anchor-link-content の margin/padding ハックは scroll-padding-top と二重に
   なるため無効化（着地ズレ＝ぎこちなさの原因） */
.anchor-link-content {
	margin-top: 0;
	padding-top: 0;
}

/* グローバルナビ（PC）：サブメニューはクリックではなくホバー／キーボードフォーカスで開く。
   トップ項目自体は <a> でクリックすると各セクションへページ遷移する（開閉トグルはしない）。
   ※スマホ（ハンバーガー）は main.js のタップ式アコーディオンで開閉する。 */
@media screen and (min-width: 1101px) {
	.header-nav-item:hover > .header-sab-menu,
	.header-nav-item:focus-within > .header-sab-menu {
		display: block;
	}
	/* アクティブ時に出ていた下の四角（#f1f1f1 のバー）を、
	   「現在表示中ページの項目（.is-current）」とホバー／フォーカス時に表示。
	   矢印アイコン（:after）と競合しないよう、未使用の ::before でバーを描く。 */
	.header-nav-item.is-current > .header-nav-item-link::before,
	.header-nav-item:hover > .header-nav-item-link::before,
	.header-nav-item:focus-within > .header-nav-item-link::before {
		content: "";
		position: absolute;
		height: 8px;
		background-color: #f1f1f1;
		left: -15px;
		right: -15px;
		bottom: 0;
		z-index: 1;
	}
}

/* グローバルナビ（スマホ）：ヘッダーのサブメニュー（ドロップダウン）は非表示。
   ページ側のセクションサブメニュー（.sub-menu）／アンカーナビ（.anchor-link）は
   折り返さず横並び・横スクロールで表示する。トップ項目のタップはページ遷移。 */
@media screen and (max-width: 1100px) {
	/* ヘッダーのドロップダウンは隠す */
	.header-nav .header-sab-menu {
		display: none !important;
	}
	/* トップ項目右の下矢印 → 右矢印に差し替え（遷移リンクであることを示す） */
	.header-nav .header-nav-item-link:after {
		background-image: url(/assets/images/arrow-right-white.png) !important;
		width: 7px;
		height: 11px;
	}
	/* 矢印と文字が重ならないよう、リンク右側に矢印分の余白を確保 */
	.header-nav .header-nav-item-link {
		padding-right: 32px;
	}
	/* ページのセクションサブメニュー／アンカーナビを表示し、折り返さず横スクロール */
	.sub-menu,
	.anchor-link {
		display: block !important;
	}
	.sub-menu-list,
	.anchor-link-list {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		letter-spacing: normal; /* legacy のインライン詰め(-0.4em)を解除 */
		gap: 8px;
		/* 余白を含めず画面の端いっぱいまで横スクロール（コンテナの左右余白を打ち消す）。
		   両端の calc(50% - 50vw) でビューポート幅まで広げ、padding で中身を少し内側に。 */
		margin: 0 calc(50% - 50vw);
		padding: 0 15px 6px;
		scrollbar-width: thin;
	}
	.sub-menu-item,
	.anchor-link-item {
		flex: 0 0 auto;
		width: auto;
		margin: 0;
	}
	/* スマホはピルを少し小さく。右端の矢印(:after right:15px・幅7〜12px)と被らないよう右側は広めに。 */
	.sub-menu-item a,
	.anchor-link-item a {
		white-space: nowrap;
		font-size: 1.3rem;
		padding: 6px 28px 5px 16px;
	}
}

/* スマホ時のみ：年代別ニュースの年リストを折り返さず横スクロールにする（PCは従来の縦並びサイドバー） */
@media screen and (max-width: 767px) {
	.news-menu .news-menu-list {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		gap: 8px;
		margin: 0;
		padding: 0 0 6px; /* 下はスクロールバー分 */
		scrollbar-width: thin;
	}
	.news-menu .news-menu-list .news-menu-item {
		flex: 0 0 auto;
		margin: 0;
	}
	.news-menu .news-menu-list .news-menu-item a {
		white-space: nowrap;
	}
}

/* ==========================================================================
   ページネーション（会員向けニュース・トピックス等の一覧）
   the_posts_pagination() の素の出力を、四角い数字ボタンに整える。
   出力構造: nav.pagination > .nav-links > a.page-numbers / span.page-numbers.current
   ========================================================================== */
.pagination {
	margin: 48px 0 8px;
}
.pagination .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
}
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid #d3d8de;
	border-radius: 3px;
	background: #fff;
	color: #164a7b;
	font-size: 15px;
	line-height: 1;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.pagination a.page-numbers:hover,
.pagination a.page-numbers:focus-visible {
	border-color: #164a7b;
	background: #164a7b;
	color: #fff;
}
.pagination .page-numbers.current {
	border-color: #164a7b;
	background: #164a7b;
	color: #fff;
	font-weight: 700;
}
.pagination .page-numbers.dots {
	border-color: transparent;
	background: none;
	min-width: 24px;
	padding: 0 4px;
	color: #6b7280;
}
/* 「前へ／次へ」は文字が入るぶん少し広く */
.pagination .page-numbers.prev,
.pagination .page-numbers.next {
	padding: 0 16px;
}

@media screen and (max-width: 767px) {
	.pagination {
		margin: 32px 0 8px;
	}
	.pagination .nav-links {
		gap: 6px;
	}
	.pagination .page-numbers {
		min-width: 36px;
		height: 36px;
		padding: 0 8px;
		font-size: 14px;
	}
	.pagination .page-numbers.prev,
	.pagination .page-numbers.next {
		padding: 0 12px;
	}
}
