/* =========================================================================
 * FMAP 記事コンテンツ スタイル（テーマ非依存）
 * サンプル画像を大きく・タップでライトボックス・SVGアイコン・完全レスポンシブ
 * 変数はテーマ側(fmap-theme)がペルソナ別に上書き可能。既定値を内包。
 * ========================================================================= */
:root{
	--fmap-accent:#e4007f;
	--fmap-accent2:#8b5cf6;
	--fmap-ink:#1a1a24;
	--fmap-sub:#5b5f72;
	--fmap-line:#e8e8ef;
	--fmap-card:#ffffff;
	--fmap-soft:#faf6fb;
	--fmap-radius:16px;
	--fmap-shadow:0 6px 24px rgba(20,10,40,.08);
	--fmap-shadow-lg:0 20px 60px rgba(20,10,40,.18);
}

.fmap-icon{display:inline-block;vertical-align:-.15em;width:1.1em;height:1.1em}

/* 見出し */
.fmap-hero,.fmap-verdict,.fmap-spec,.fmap-review,.fmap-proscons,.fmap-who,
.fmap-gallery,.fmap-author,.fmap-compare,.fmap-ranking,.fmap-faq,.fmap-cta-final{
	margin:2.2em 0;
}
.fmap-review h2,.fmap-spec h2,.fmap-gallery h2,.fmap-verdict h2,.fmap-who h2,
.fmap-author h2,.fmap-compare h2,.fmap-ranking h2,.fmap-faq h2{
	font-size:clamp(1.15rem,1rem + 1vw,1.5rem);font-weight:800;letter-spacing:.01em;
	margin:0 0 .8em;padding-left:.6em;border-left:5px solid var(--fmap-accent);line-height:1.35;
}

/* ヒーロー（表紙） */
.fmap-hero{text-align:center}
.fmap-hero__img img{max-width:min(420px,100%);height:auto;border-radius:var(--fmap-radius);box-shadow:var(--fmap-shadow-lg)}
.fmap-hero__catch{font-size:clamp(1.1rem,1rem + 1.2vw,1.6rem);font-weight:800;margin:.9em auto;max-width:26em;line-height:1.5;background:linear-gradient(90deg,var(--fmap-accent),var(--fmap-accent2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ボタン（SVGアイコン） */
.fmap-cta{margin:1.5em 0;text-align:center}
.fmap-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
	padding:1em 2em;min-height:56px;border-radius:999px;font-weight:800;font-size:1.05rem;
	text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--fmap-accent),var(--fmap-accent2));
	box-shadow:0 10px 26px rgba(228,0,127,.32);transition:transform .15s ease,box-shadow .15s ease;line-height:1.2}
.fmap-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(228,0,127,.42)}
.fmap-btn:active{transform:translateY(0)}
.fmap-btn__icon{display:inline-flex;font-size:1.2em}
.fmap-btn__arrow{display:inline-flex;font-size:1.1em;transition:transform .15s}
.fmap-btn:hover .fmap-btn__arrow{transform:translateX(3px)}
.fmap-btn--tachiyomi{background:linear-gradient(135deg,#5b2a86,#8b5cf6);box-shadow:0 10px 26px rgba(91,42,134,.32)}
.fmap-btn--more{padding:.65em 1.3em;min-height:44px;font-size:.95rem;background:linear-gradient(135deg,var(--fmap-accent2),var(--fmap-accent))}

/* スコア */
.fmap-scores{display:flex;flex-wrap:wrap;gap:.7em;margin:1em 0}
.fmap-score{flex:1 1 120px;min-width:110px;display:flex;flex-direction:column;align-items:center;gap:.15em;
	padding:1em .6em;background:var(--fmap-soft);border:1px solid var(--fmap-line);border-radius:14px}
.fmap-score__label{font-size:.82rem;color:var(--fmap-sub);font-weight:700}
.fmap-score__value{font-size:1.7rem;font-weight:900;line-height:1;color:var(--fmap-accent)}
.fmap-stars{display:inline-flex;gap:1px;color:#f5a623;font-size:1rem}
.fmap-star{position:relative;display:inline-flex;width:1em;height:1em}
.fmap-star.is-empty{color:#d9d9e3}
.fmap-star.is-half .fmap-star__bg{color:#d9d9e3}
.fmap-star.is-half .fmap-star__fg{position:absolute;inset:0;color:#f5a623}
.fmap-verdict__text{font-size:1.05rem;font-weight:700;text-align:center;margin:.8em 0 0}

/* スペック表 */
.fmap-spec__table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--fmap-line);border-radius:14px;overflow:hidden}
.fmap-spec__table th,.fmap-spec__table td{padding:.85em 1em;text-align:left;font-size:.95rem;border-bottom:1px solid var(--fmap-line)}
.fmap-spec__table tr:last-child th,.fmap-spec__table tr:last-child td{border-bottom:0}
.fmap-spec__table th{background:var(--fmap-soft);white-space:nowrap;width:7.5em;font-weight:700;color:var(--fmap-sub)}

/* レビュー本文 */
.fmap-review p{font-size:1.02rem;line-height:1.95;margin:0 0 1em}

/* 良い点/気になる点 */
.fmap-proscons{display:grid;grid-template-columns:1fr 1fr;gap:1em}
.fmap-pros,.fmap-cons{padding:1.2em 1.3em;border-radius:14px}
.fmap-pros{background:linear-gradient(180deg,#effcf3,#f5fff8);border:1px solid #cdeddb}
.fmap-cons{background:linear-gradient(180deg,#fff6ef,#fffaf6);border:1px solid #f2dcc9}
.fmap-pros h3,.fmap-cons h3{margin:0 0 .5em;font-size:1rem}
.fmap-proscons ul{margin:0;padding-left:1.2em}
.fmap-proscons li{margin:.35em 0;line-height:1.6}

.fmap-who p,.fmap-ranking p,.fmap-author p,.fmap-compare p{font-size:1.02rem;line-height:1.8;background:var(--fmap-soft);border:1px solid var(--fmap-line);border-radius:14px;padding:1.1em 1.3em;margin:0}

/* ============ サンプルギャラリー（大きく） ============ */
.fmap-gallery__hint{display:flex;align-items:center;gap:.4em;color:var(--fmap-sub);font-size:.9rem;margin:0 0 1em}
.fmap-gallery__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.fmap-gallery__item{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--fmap-soft);
	box-shadow:var(--fmap-shadow);cursor:zoom-in;aspect-ratio:auto;transition:transform .18s ease}
.fmap-gallery__item img{width:100%;height:auto;display:block;transition:transform .3s ease}
.fmap-gallery__item:hover{transform:translateY(-3px)}
.fmap-gallery__item:hover img{transform:scale(1.04)}
.fmap-gallery__zoom{position:absolute;right:8px;bottom:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;
	background:rgba(0,0,0,.55);color:#fff;border-radius:10px;font-size:18px;backdrop-filter:blur(4px);opacity:0;transition:opacity .2s}
.fmap-gallery__item:hover .fmap-gallery__zoom,.fmap-gallery__item:focus .fmap-gallery__zoom{opacity:1}
@media(min-width:720px){.fmap-gallery__grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(max-width:480px){.fmap-gallery__grid{grid-template-columns:repeat(2,1fr);gap:8px}}

/* ============ ライトボックス ============ */
.fmap-lb{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;
	background:rgba(8,6,16,.94);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s}
.fmap-lb.is-open{display:flex;opacity:1}
.fmap-lb__stage{margin:0;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.fmap-lb__img{max-width:96vw;max-height:82vh;width:auto;height:auto;border-radius:8px;box-shadow:0 20px 80px rgba(0,0,0,.6);opacity:.4;transition:opacity .2s}
.fmap-lb__img.is-loaded{opacity:1}
.fmap-lb__cap{color:#fff;font-size:.95rem;text-align:center;max-width:40em;padding:0 1em}
.fmap-lb__close{position:absolute;top:14px;right:14px;width:48px;height:48px;border:0;border-radius:50%;
	background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.fmap-lb__close:hover{background:rgba(255,255,255,.25)}
.fmap-lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border:0;border-radius:50%;
	background:rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.fmap-lb__nav:hover{background:rgba(255,255,255,.24)}
.fmap-lb__prev{left:12px}.fmap-lb__next{right:12px}
.fmap-lb__counter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#fff;font-size:.9rem;
	background:rgba(255,255,255,.12);padding:.35em 1em;border-radius:999px}
@media(max-width:600px){
	.fmap-lb__nav{width:44px;height:44px}.fmap-lb__prev{left:6px}.fmap-lb__next{right:6px}
	.fmap-lb__img{max-height:76vh}
}

/* FAQ */
.fmap-faq dl{border:1px solid var(--fmap-line);border-radius:14px;overflow:hidden}
.fmap-faq dt{font-weight:800;padding:.9em 1.1em .3em;background:var(--fmap-soft)}
.fmap-faq dd{margin:0;padding:.3em 1.1em 1em;line-height:1.7;border-bottom:1px solid var(--fmap-line)}
.fmap-faq dd:last-child{border-bottom:0}

/* クレジット/PR */
.fmap-credit{margin-top:2.4em;padding-top:1.2em;border-top:1px solid var(--fmap-line);font-size:.82rem;color:var(--fmap-sub);text-align:center}
.fmap-credit a{color:var(--fmap-accent2)}
.fmap-pr{color:#999;font-size:.78rem}

/* ============ 一覧カード ============ */
.fmap-card{display:flex;gap:16px;align-items:stretch}
.fmap-card__thumb{flex:0 0 140px;border-radius:12px;overflow:hidden;box-shadow:var(--fmap-shadow);align-self:flex-start}
.fmap-card__thumb img{width:140px;height:auto;display:block;transition:transform .3s}
.fmap-card__thumb:hover img{transform:scale(1.05)}
.fmap-card__body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.6em}
.fmap-card__excerpt{margin:0;color:var(--fmap-sub);font-size:.96rem;line-height:1.7;
	display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fmap-card__more{margin:0}
@media(max-width:520px){
	.fmap-card{gap:12px}
	.fmap-card__thumb{flex:0 0 104px}.fmap-card__thumb img{width:104px}
}

/* モバイル: 本文の横あふれ防止 */
.fmap-gallery,.fmap-spec{max-width:100%;overflow-x:hidden}
@media(max-width:560px){
	.fmap-proscons{grid-template-columns:1fr}
	.fmap-btn{width:100%;padding:1em 1.2em}
}
