/* 演者図鑑 人物ページ・トップページ
   女性誌・芸能ニュースのような、明るく清潔感のある見た目。スマホ基準で組み、広い画面で段を増やす */

:root {
	--ez-ink: #23212b;
	--ez-sub: #6d6a76;
	--ez-line: #eee8ee;
	--ez-rose: #c23a5e;
	--ez-rose-soft: #fdf0f4;
	--ez-lav: #f4f1fb;
	--ez-cream: #fffaf5;
	--ez-radius: 16px;
}

.ez-home, .ez-person, .ez-list { color: var(--ez-ink); line-height: 1.8; font-size: 16px; min-width: 0; }
.ez-home *, .ez-person *, .ez-list * { box-sizing: border-box; }
.ez-home a, .ez-person a, .ez-list a { text-decoration: none; }
.ez-sp { display: inline; }
@media (min-width: 768px) { .ez-sp { display: none; } }

/* ---------- 共通部品 ---------- */
.ez-btn {
	display: inline-flex; align-items: center; gap: .5em;
	padding: .8em 1.5em; border-radius: 999px;
	background: var(--ez-rose); color: #fff !important; font-weight: 700; font-size: 15px;
	transition: opacity .2s;
}
.ez-btn:hover { opacity: .85; }
.ez-btn small { font-weight: 400; opacity: .85; font-size: 12px; }
.ez-btn.is-ghost { background: #fff; color: var(--ez-rose) !important; border: 1.5px solid var(--ez-rose); }

.ez-badge {
	display: inline-block; margin-left: .5em; padding: .1em .7em; border-radius: 999px;
	font-size: 12px; font-weight: 700; line-height: 1.7; vertical-align: middle;
	background: var(--ez-lav); color: #5b4b8a;
}
.ez-badge.is-active { background: #e8f6ee; color: #1f7a45; }
.ez-badge.is-retired { background: #f3eee8; color: #7a5a3a; }
.ez-badge.is-hiatus { background: #fff4de; color: #8a5a00; }

.ez-note { color: var(--ez-sub); font-size: 14px; margin: 0 0 1em; }

.ez-sec { margin: 0 0 3.2em; }
.ez-sec-h {
	font-size: 22px !important; margin: 0 0 1em !important; line-height: 1.4;
	display: flex; flex-direction: column; gap: .15em;
}
.ez-sec-h span {
	font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 400;
	font-size: 14px; color: var(--ez-rose); letter-spacing: .06em;
}

/* 写真の代わりの頭文字 */
.ez-mono {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 50%;
	font-size: 24px; font-weight: 700; color: #fff;
}
.ez-tone0 { background: linear-gradient(135deg, #f19bb4, #c23a5e); }
.ez-tone1 { background: linear-gradient(135deg, #b8a4ef, #7057c2); }
.ez-tone2 { background: linear-gradient(135deg, #f7c59f, #d9824a); }
.ez-tone3 { background: linear-gradient(135deg, #9fd8cf, #3d9a8b); }
.ez-tone4 { background: linear-gradient(135deg, #a6c8f5, #4d7fcf); }
.ez-tone5 { background: linear-gradient(135deg, #f3a6d6, #b04a98); }

/* 人物カード */
.ez-cards { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 600px) { .ez-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .ez-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ez-card {
	position: relative; display: flex; align-items: center; gap: 14px;
	padding: 16px; background: #fff; border: 1px solid var(--ez-line); border-radius: var(--ez-radius);
	color: var(--ez-ink) !important; transition: box-shadow .2s, transform .2s; min-width: 0;
}
.ez-card:hover { box-shadow: 0 6px 20px rgba(194, 58, 94, .12); transform: translateY(-2px); }
.ez-card-b { display: flex; flex-direction: column; min-width: 0; }
.ez-card-k { font-size: 11px; color: var(--ez-sub); letter-spacing: .05em; }
.ez-card-n { font-size: 17px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.ez-card-r { font-size: 13px; color: var(--ez-sub); line-height: 1.5; }
.ez-card-m { font-size: 12px; color: var(--ez-rose); }
.ez-card .ez-badge { margin: .4em 0 0; align-self: flex-start; }
.ez-rank {
	position: absolute; top: -8px; left: -8px; width: 28px; height: 28px; border-radius: 50%;
	background: var(--ez-ink); color: #fff; font-size: 13px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
}

/* SNS埋め込み（Instagramのiframeは min-width:326px 固定なので上書きする） */
.ez-embeds { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .ez-embeds { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ez-embed, .ez-feature-media { min-width: 0; }
.ez-embed iframe, .ez-feature-media iframe, .ez-embed blockquote, .ez-feature-media blockquote {
	min-width: 0 !important; max-width: 100% !important; width: 100% !important; margin: 0 !important;
}

/* ---------- トップページ ---------- */
.ez-hero {
	margin: 0 0 3em; padding: 44px 24px 40px; border-radius: 24px; text-align: center;
	background:
		radial-gradient(circle at 15% 20%, rgba(241, 155, 180, .35), transparent 45%),
		radial-gradient(circle at 85% 80%, rgba(184, 164, 239, .35), transparent 45%),
		var(--ez-cream);
}
.ez-hero-eyebrow {
	margin: 0 0 .6em; font-size: 12px; letter-spacing: .2em; color: var(--ez-rose); font-weight: 700;
}
.ez-hero-title { font-size: clamp(30px, 8vw, 48px) !important; line-height: 1.3 !important; margin: 0 0 .5em !important; letter-spacing: .02em; }
.ez-hero-lead { max-width: 34em; margin: 0 auto 1.6em; color: var(--ez-sub); font-size: 15px; }
.ez-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

.ez-feature-in {
	display: grid; grid-template-columns: 1fr; gap: 20px;
	padding: 20px; border-radius: 24px; background: var(--ez-rose-soft);
}
@media (min-width: 768px) { .ez-feature-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; padding: 32px; align-items: center; } }
.ez-feature-k { margin: 0; font-size: 13px; color: var(--ez-sub); letter-spacing: .08em; }
.ez-feature-n { font-size: clamp(28px, 7vw, 40px) !important; margin: 0 0 .2em !important; line-height: 1.3 !important; }
.ez-feature-r { margin: 0 0 .6em; color: var(--ez-rose); font-weight: 700; font-size: 14px; }
.ez-feature-body .ez-badge { margin: 0 0 1em; }
.ez-feature-lede { margin: 0 0 1.4em; font-size: 15px; }

.ez-after-list { display: grid; gap: 12px; }
@media (min-width: 768px) { .ez-after-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ez-after-item {
	display: flex; gap: 14px; align-items: flex-start; padding: 16px;
	border-radius: var(--ez-radius); background: #fff; border: 1px solid var(--ez-line); color: var(--ez-ink) !important;
}
.ez-after-b { display: flex; flex-direction: column; min-width: 0; }
.ez-after-n { font-weight: 700; font-size: 17px; }
.ez-after-t { font-size: 14px; color: var(--ez-sub); line-height: 1.7; }

.ez-posts { display: grid; gap: 0; border-top: 1px solid var(--ez-line); }
.ez-post { display: block; padding: 14px 4px; border-bottom: 1px solid var(--ez-line); color: var(--ez-ink) !important; }
.ez-post-meta { display: block; font-size: 12px; color: var(--ez-sub); }
.ez-post-cat { margin-left: .8em; color: var(--ez-rose); font-weight: 700; }
.ez-post-t { display: block; font-weight: 700; line-height: 1.6; }

.ez-themes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 1000px) { .ez-themes { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.ez-theme {
	display: flex; flex-direction: column; gap: .3em; padding: 14px;
	border-radius: var(--ez-radius); background: var(--ez-lav); color: var(--ez-ink) !important;
}
.ez-theme-n { font-weight: 700; }
.ez-theme-d { font-size: 12px; color: var(--ez-sub); line-height: 1.6; }

.ez-promise-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: pm; }
@media (min-width: 768px) { .ez-promise-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ez-promise-list li {
	counter-increment: pm; position: relative; padding: 16px 16px 16px 56px;
	border-radius: var(--ez-radius); background: #fff; border: 1px solid var(--ez-line); font-size: 14px; color: var(--ez-sub);
}
.ez-promise-list li::before {
	content: counter(pm); position: absolute; left: 16px; top: 16px; width: 28px; height: 28px; border-radius: 50%;
	background: var(--ez-rose-soft); color: var(--ez-rose); font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.ez-promise-list b { display: block; color: var(--ez-ink); font-size: 15px; }
.ez-promise-foot { margin-top: 1em; font-size: 14px; }
.ez-promise-foot a { color: var(--ez-rose) !important; }

/* ---------- 人物ページ ---------- */
.ez-person { max-width: 760px; margin: 0 auto; }
.ez-p-head {
	margin: 0 0 1.6em; padding: 32px 22px 26px; border-radius: 24px; text-align: center;
	background:
		radial-gradient(circle at 10% 15%, rgba(241, 155, 180, .30), transparent 45%),
		radial-gradient(circle at 90% 85%, rgba(184, 164, 239, .30), transparent 45%),
		var(--ez-cream);
}
.ez-p-kana { margin: 0; font-size: 13px; color: var(--ez-sub); letter-spacing: .12em; }
.ez-p-name { font-size: clamp(32px, 9vw, 46px) !important; margin: .1em 0 .2em !important; line-height: 1.25 !important; letter-spacing: .04em; }
.ez-p-role { margin: 0 0 1em; color: var(--ez-rose); font-weight: 700; font-size: 15px; }
.ez-p-follow { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin: 0 0 1.2em; }
.ez-follow {
	padding: .45em 1.1em; border-radius: 999px; font-size: 13px; font-weight: 700;
	background: #fff; border: 1px solid var(--ez-line); color: var(--ez-ink) !important;
}
.ez-follow.is-instagram { border-color: #e4a0bb; color: #b8336a !important; }
.ez-p-lede { margin: 0 auto; max-width: 36em; text-align: left; font-size: 15px; }

.ez-now {
	margin: 0 0 2em; padding: 18px 20px; border-radius: var(--ez-radius);
	background: #fff; border: 1px solid var(--ez-line); border-left: 4px solid var(--ez-rose);
}
.ez-now-h { margin: 0 0 .4em; font-weight: 700; }
.ez-now-b { margin: 0; font-size: 15px; }

.ez-toc { margin: 0 0 2.4em; padding: 14px 18px; border-radius: var(--ez-radius); background: var(--ez-lav); }
.ez-toc summary { cursor: pointer; font-weight: 700; }
.ez-toc ol { margin: .6em 0 0 1.4em; padding: 0; font-size: 14px; }
.ez-toc a { color: var(--ez-ink) !important; }

.ez-h2 {
	font-size: 21px !important; margin: 0 0 .9em !important; padding-bottom: .4em; line-height: 1.4 !important;
	border-bottom: 2px solid var(--ez-rose-soft); position: relative;
}
.ez-h2::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 48px; height: 2px; background: var(--ez-rose); }
.ez-person .ez-sec p { margin: 0 0 1em; }

.ez-prof { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); margin: 0; border-top: 1px solid var(--ez-line); }
.ez-prof dt, .ez-prof dd { margin: 0; padding: 11px 6px; border-bottom: 1px solid var(--ez-line); }
.ez-prof dt { color: var(--ez-sub); font-size: 13px; font-weight: 700; }
.ez-prof dd { overflow-wrap: anywhere; }
.ez-prof.is-media { grid-template-columns: 8.5em minmax(0, 1fr); }
.ez-prof.is-media dt { font-weight: 400; font-variant-numeric: tabular-nums; }

.ez-tl { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--ez-rose-soft); }
.ez-tl li { position: relative; padding: 0 0 1.3em 10px; }
.ez-tl li::before {
	content: ""; position: absolute; left: -26px; top: .55em; width: 12px; height: 12px; border-radius: 50%;
	background: #fff; border: 3px solid var(--ez-rose);
}
.ez-tl-d { display: block; font-size: 13px; color: var(--ez-rose); font-weight: 700; font-variant-numeric: tabular-nums; }
.ez-tl-t { display: block; font-weight: 700; }
.ez-tl-b { display: block; font-size: 14px; color: var(--ez-sub); }

.ez-faq { display: grid; gap: 10px; }
.ez-qa { padding: 14px 16px; border-radius: var(--ez-radius); background: #fff; border: 1px solid var(--ez-line); }
.ez-q { margin: 0 0 .3em !important; font-weight: 700; }
.ez-q::before { content: "Q. "; color: var(--ez-rose); }
.ez-a { margin: 0 !important; font-size: 15px; }

.ez-sources ul { margin: 0; padding-left: 1.2em; font-size: 14px; }
.ez-sources a { color: var(--ez-rose) !important; text-decoration: underline !important; }
.ez-src-d { color: var(--ez-sub); }

.ez-foot {
	margin-top: 3em; padding: 18px 20px; border-radius: var(--ez-radius); background: #f8f7f9;
	font-size: 13px; color: var(--ez-sub); line-height: 1.8;
}
.ez-foot p { margin: 0 0 .6em; }
.ez-foot-h { font-weight: 700; color: var(--ez-ink); }
.ez-foot a { color: var(--ez-rose) !important; }

/* ---------- 一覧 ---------- */
.ez-list-head { margin: 0 0 1.6em; }
.ez-list-title { font-size: clamp(26px, 7vw, 36px) !important; margin: 0 0 .3em !important; }
.ez-pager { margin-top: 2em; }

/* ============================================================
   文字（2026-09-28 実測に合わせる）
   芸能ニュース・女性誌8サイトをスマホ幅375pxで実測：
   本文は16px（モデルプレス・ライブドア・東スポ）が最多、行間は1.8前後、見出し(h2)は18〜20px。
   書体はiPhoneのヒラギノ／Windowsの游ゴシックが大半。
   游ゴシックの標準の太さはWindowsで細く見えるので「Medium」を指定する（ウェブフォントは読み込まない＝表示速度優先）
   ============================================================ */
.ez-home, .ez-person, .ez-list {
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "YuGothic", YuGothic, Meiryo, sans-serif;
	font-size: 16px; line-height: 1.85; letter-spacing: .02em;
}
.ez-note, .ez-hero-lead, .ez-tl-b, .ez-sources ul, .ez-promise-list li, .ez-after-t, .ez-now-b, .ez-a, .ez-p-lede, .ez-feature-lede { font-size: 15px; }
.ez-card-r, .ez-foot, .ez-follow, .ez-toc ol, .ez-post-meta { font-size: 14px; }
.ez-card-k, .ez-theme-d, .ez-p-kana, .ez-feature-k { font-size: 13px; }
.ez-h2, .ez-sec-h { font-size: 20px !important; }
.ez-tl-t, .ez-card-n, .ez-after-n { font-size: 17px; }
.ez-prof dt { font-size: 14px; }

/* 本文の途中に挟む写真 */
.ez-photo { margin: 1.6em auto 2em; max-width: 480px; }
.ez-photo iframe, .ez-photo blockquote { min-width: 0 !important; max-width: 100% !important; width: 100% !important; margin: 0 !important; }
.ez-photo figcaption { margin-top: .6em; font-size: 14px; color: var(--ez-sub); text-align: center; line-height: 1.6; }
.ez-tl + .ez-photo { margin-left: auto; }
.ez-embeds .ez-photo { margin: 0; }

/* Instagramは iframe を直接置く。写真(4:5)＋上下の枠(約176px)の高さを先に確保して、表示が跳ねないようにする */
.ez-ig { position: relative; width: 100%; padding-bottom: calc(125% + 176px); background: #f3f1f4; border-radius: 10px; overflow: hidden; }
.ez-ig iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; margin: 0 !important; min-width: 0 !important; background: #fff; }

/* ============================================================
   記事フォーマット（要点ボックス・本文H2/H3）
   ============================================================ */
.ez-summary { margin: 0 0 1.6em; padding: 18px 20px; border-radius: var(--ez-radius); background: #fff; border: 2px solid var(--ez-rose-soft); }
.ez-summary-h { margin: 0 0 .5em !important; font-weight: 700; color: var(--ez-rose); }
.ez-summary ul { margin: 0; padding-left: 1.2em; }
.ez-summary li { margin: .2em 0; }
.ez-summary-d { margin: .8em 0 0 !important; font-size: 13px; color: var(--ez-sub); text-align: right; }

.ez-toc ol ol { margin: .2em 0 .4em 1.2em; font-size: 14px; list-style: disc; }

.ez-body { margin: 0 0 3em; }
.ez-body .ez-h2 { margin-top: 2.4em !important; }
.ez-body .ez-h2:first-child { margin-top: 0 !important; }
.ez-h3 { font-size: 18px !important; margin: 1.8em 0 .7em !important; padding-left: .7em; border-left: 4px solid var(--ez-rose); line-height: 1.5 !important; }
.ez-body p { margin: 0 0 1.1em; }
.ez-body ul, .ez-body ol { margin: 0 0 1.2em 1.3em; }
.ez-body blockquote { margin: 1.2em 0; padding: 12px 16px; border-left: 4px solid var(--ez-lav); background: #faf9fb; border-radius: 0 10px 10px 0; font-size: 15px; }
.ez-body blockquote p { margin: 0; }
.ez-body blockquote cite { display: block; margin-top: .4em; font-size: 13px; color: var(--ez-sub); font-style: normal; }
.ez-body table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; font-size: 15px; }
.ez-body th, .ez-body td { padding: 9px 8px; border-bottom: 1px solid var(--ez-line); text-align: left; vertical-align: top; }
.ez-body th { color: var(--ez-sub); font-size: 14px; white-space: nowrap; }
.ez-body .wp-block-table { overflow-x: auto; margin: 0 0 1.4em; }
.ez-body sup a, .ez-body .ez-cite { font-size: 12px; color: var(--ez-rose) !important; }

/* ============================================================
   フォーマット確定（2026-09-29 運営者承認）
   ・写真枠：Instagram埋め込みは写真の下に「いいね」「コメントを追加」の行が続く。
     +176px では最下行と枠線が切れていたので +250px 確保する
   ・経歴年表：長いとスクロールで離脱しやすい（運営者指摘）。1項目1行（年月＋見出し）に詰める
   ・目次：初期状態は閉じる（テンプレート側）
   ============================================================ */
.ez-ig { padding-bottom: calc(125% + 250px); }
.ez-tl li { padding-bottom: .5em; }
.ez-tl-d { display: inline-block; min-width: 5.4em; }
.ez-tl-t { display: inline; font-size: 15px; }
.ez-tl-b { margin-top: .1em; }

/* ============================================================
   トップページ
   ============================================================ */
.ez-ranking { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ez-line); }
.ez-ranking li { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--ez-line); }
.ez-ranking-no { flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--ez-ink); color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.ez-ranking li:nth-child(-n+3) .ez-ranking-no { background: var(--ez-rose); }
.ez-ranking .ez-mono { width: 46px; height: 46px; font-size: 20px; }
.ez-ranking-who { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.4; }
.ez-ranking-who b { font-size: 17px; color: var(--ez-ink); }
.ez-ranking-who a b { color: var(--ez-rose); }
.ez-ranking-who small { font-size: 13px; color: var(--ez-sub); }
.ez-soon { font-size: 12px; color: #9a97a3; }
.ez-ranking-f { font-weight: 700; color: var(--ez-rose); white-space: nowrap; font-size: 16px; text-align: right; }
.ez-ranking-f small { display: block; font-size: 11px; color: var(--ez-sub); font-weight: 400; }
.ez-feed { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 16px 8px; margin: 0 -16px; }
.ez-feed .ez-photo { flex: 0 0 78%; margin: 0; scroll-snap-align: start; max-width: none; }
@media (min-width: 768px) { .ez-feed .ez-photo { flex-basis: 32%; } }
.ez-theme-n small { font-weight: 400; font-size: 13px; color: var(--ez-sub); margin-left: .2em; }
.ez-theme.is-empty { opacity: .55; }
.ez-feature-media .ez-photo { margin: 0; max-width: none; }
.ez-promise-line { font-size: 13px; color: var(--ez-sub); background: #f8f7f9; border-radius: var(--ez-radius); padding: 14px 18px; margin: 0; }
.ez-promise-line a { color: var(--ez-rose) !important; margin-left: .3em; }

/* トップのランキングは .ez-ranking（.ez-rank はカードの順位バッジ用で衝突していた） */

/* 人物・特徴の補足、来店イベントの注記 */
.ez-trait-d { font-size: 13px; color: var(--ez-sub); line-height: 1.7; }
.ez-follow.is-site { border-color: #cfc6d6; }
