@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ — VIBES 8 ROPPONGI ネオンデザインシステム
    Version: 1.1.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ============================================================
   VIBES 8 ROPPONGI — Neon Design System
   navy #0A0E27 / magenta #FF5FB5 / cyan #38E1FF / gold #E7C66B
   ============================================================ */

:root {
	--v8-navy: #0A0E27;
	--v8-navy-deep: #060919;
	--v8-surface: #121735;
	--v8-surface-2: #1A2046;
	--v8-line: rgba(185, 191, 216, .14);
	--v8-white: #F2F4FF;
	--v8-grey: #B9BFD8;
	--v8-muted: #7C82A3;
	--v8-mag: #FF5FB5;
	--v8-cyan: #38E1FF;
	--v8-gold: #E7C66B;
	--v8-serif: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--v8-glow-mag: 0 0 6px rgba(255, 95, 181, .8), 0 0 18px rgba(255, 95, 181, .45), 0 0 42px rgba(255, 95, 181, .25);
	--v8-glow-cyan: 0 0 6px rgba(56, 225, 255, .8), 0 0 18px rgba(56, 225, 255, .4), 0 0 42px rgba(56, 225, 255, .22);
}

/* ---------- SWELL 全体ダーク化 ---------- */
body {
	--color_bg: var(--v8-navy);
	--color_text: var(--v8-grey);
	--color_main: var(--v8-cyan);
	--color_link: var(--v8-cyan);
	--color_gray: var(--v8-surface);
	--color_border: var(--v8-line);
	--color_htag: var(--v8-white);
	background: var(--v8-navy);
	color: var(--v8-grey);
	font-family: var(--v8-serif);
	letter-spacing: .04em;
}

#wpadminbar { font-family: sans-serif; }

h1, h2, h3, h4, h5, h6 { color: var(--v8-white); font-family: var(--v8-serif); }

/* ヘッダー・フッター */
.l-header, .l-header__inner, .l-header__bar {
	background: rgba(6, 9, 25, .88) !important;
	backdrop-filter: blur(10px);
}
.l-header { border-bottom: 1px solid var(--v8-line); box-shadow: none !important; }
.l-header .c-gnav a, .l-header .p-spMenu__itemLink,
.l-header .c-headLogo, .l-header .c-headLogo a,
.l-header .c-iconBtn, .l-header .c-iconBtn__icon { color: var(--v8-white) !important; }
.c-gnav > li > a { font-size: .92em; letter-spacing: .14em; }
.c-gnav > li > a:hover { color: var(--v8-cyan) !important; text-shadow: var(--v8-glow-cyan); }
/* ナビ末尾のCTAボタン */
.c-gnav > li.v8-nav-cta > a {
	background: linear-gradient(135deg, #FF5FB5, #E8439D);
	border-radius: 999px; padding: 0 22px; margin-left: 10px;
	color: #fff !important; font-weight: 600;
	box-shadow: 0 0 16px rgba(255, 95, 181, .35);
	transition: box-shadow .3s ease;
}
.c-gnav > li.v8-nav-cta > a:hover { box-shadow: var(--v8-glow-mag); text-shadow: none; }
.c-gnav > li.v8-nav-cta > a::before, .c-gnav > li.v8-nav-cta > a::after { content: none !important; }
/* SPドロワー内では通常リンク表示 */
.p-spMenu .v8-nav-cta a { background: none; box-shadow: none; }

/* PCナビCTAピルの圧を抑える(自前の高さに) */
.c-gnav > li.v8-nav-cta { display: flex; align-items: center; }
.c-gnav > li.v8-nav-cta > a { height: auto; line-height: 1; padding: 12px 22px; }

/* SPヘッダーのカスタムボタン: 虫眼鏡アイコンを消して文字のみに */
.l-header__customBtn .c-iconBtn__icon, .l-header__customBtn i { display: none !important; }
.l-header__customBtn {
	width: auto !important; min-width: 0;
	padding: 0 12px !important;
	background: linear-gradient(135deg, #FF5FB5, #E8439D) !important;
	border-radius: 999px; margin-right: 6px;
}
.l-header__customBtn .c-iconBtn__label, .l-header__customBtn span {
	display: block !important; font-size: 11px !important; color: #fff !important;
	white-space: nowrap; letter-spacing: .08em;
}

/* モバイルのセクション縦リズム */
@media (max-width: 599px) {
	.v8-section { padding: 64px 20px; }
	.v8-section.-tight { padding: 48px 20px; }
	.v8-cta { padding: 84px 20px; }
	.v8-tag { font-size: 10.5px; white-space: nowrap; letter-spacing: .26em; }
	.v8-pagehead h1 { font-size: 21px; }
}
.l-footer, .l-footer__inner, .l-footer .l-footer__nav {
	background: var(--v8-navy-deep) !important;
	color: var(--v8-muted);
	border-top: 1px solid var(--v8-line);
}
.l-footer a { color: var(--v8-grey) !important; }
.l-footer a:hover { color: var(--v8-cyan) !important; }
.c-copyright { color: var(--v8-muted) !important; background: var(--v8-navy-deep) !important; }

/* SPメニュー */
.p-spMenu, .p-spMenu__inner { background: var(--v8-navy-deep) !important; color: var(--v8-grey) !important; }
.p-spMenu__itemLink { border-color: var(--v8-line) !important; }

/* コンテンツ領域の白残り対策 */
.l-content, .l-mainContent, .w-mainContent, .p-articleThumb,
.post_content, .c-postContent, main, article { background: transparent !important; }
.-frontpage .l-content { padding: 0; }

/* ページタイトル帯(下層) */
.c-pageTitle, .p-articleHead { color: var(--v8-white); }

/* SWELL標準の見出し装飾(白帯・ボーダー)を全リセット */
.post_content h1, .post_content h2, .post_content h3,
.post_content h4, .post_content h5, .post_content h6 {
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	box-shadow: none !important;
	color: var(--v8-white);
}
.post_content h2::before, .post_content h2::after,
.post_content h3::before, .post_content h3::after { content: none !important; }

/* テーブル */
.post_content table { border-color: var(--v8-line); }
.post_content th { background: var(--v8-surface-2); color: var(--v8-white); border-color: var(--v8-line); }
.post_content td { background: var(--v8-surface); border-color: var(--v8-line); }

/* ============================================================
   V8 components
   ============================================================ */

/* セクション基盤 */
.v8-section { padding: 96px 24px; position: relative; }
.v8-section.-tight { padding: 64px 24px; }
.v8-section.-deep { background: var(--v8-navy-deep); }
.v8-inner { max-width: 1080px; margin: 0 auto; }
.v8-inner.-narrow { max-width: 820px; }

/* セクションタグ(資料の「01 / CONCEPT」意匠) */
.v8-tag {
	display: inline-flex; align-items: center; gap: 14px;
	font-size: 12px; letter-spacing: .34em; color: var(--v8-cyan);
	margin-bottom: 26px; text-transform: uppercase;
}
.v8-tag::after { content: ""; width: 64px; height: 1px; background: linear-gradient(90deg, var(--v8-cyan), transparent); }
.v8-tag.-mag { color: var(--v8-mag); }
.v8-tag.-mag::after { background: linear-gradient(90deg, var(--v8-mag), transparent); }
.v8-tag.-gold { color: var(--v8-gold); }
.v8-tag.-gold::after { background: linear-gradient(90deg, var(--v8-gold), transparent); }

/* 見出し */
.v8-h2 {
	font-size: clamp(26px, 4.2vw, 40px); line-height: 1.5; font-weight: 600;
	color: var(--v8-white); letter-spacing: .06em; margin: 0 0 22px;
}
.v8-h3 { font-size: clamp(19px, 2.6vw, 24px); color: var(--v8-white); letter-spacing: .08em; margin: 0 0 14px; }
.v8-lead { font-size: clamp(14px, 1.6vw, 16px); line-height: 2.1; color: var(--v8-grey); max-width: 840px; }
.v8-center { text-align: center; }
.v8-center .v8-lead { margin-inline: auto; }

/* ネオン文字(控えめに使用) */
.v8-neon-c { color: var(--v8-cyan); text-shadow: var(--v8-glow-cyan); }
.v8-neon-m { color: var(--v8-mag); text-shadow: var(--v8-glow-mag); }
.v8-gold-t { color: var(--v8-gold); }

/* カード */
.v8-card {
	background: var(--v8-surface);
	border: 1px solid var(--v8-line);
	border-radius: 4px;
	padding: 30px 28px;
	position: relative;
}
.v8-card.-line-c { border-left: 2px solid var(--v8-cyan); }
.v8-card.-line-m { border-left: 2px solid var(--v8-mag); }
.v8-card.-line-g { border-left: 2px solid var(--v8-gold); }
.v8-card h3, .v8-card h4 { margin-top: 0; }
.v8-card p { margin-bottom: 0; font-size: 14px; line-height: 1.9; color: var(--v8-grey); }
.v8-card .v8-card-tag { font-size: 11px; letter-spacing: .3em; color: var(--v8-cyan); display: block; margin-bottom: 10px; }
.v8-card.-line-m .v8-card-tag { color: var(--v8-mag); }
.v8-card.-line-g .v8-card-tag { color: var(--v8-gold); }

/* グリッド */
.v8-grid { display: grid; gap: 20px; }
.v8-grid.-c2 { grid-template-columns: repeat(2, 1fr); }
.v8-grid.-c3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 959px) { .v8-grid.-c3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px) { .v8-grid.-c2, .v8-grid.-c3 { grid-template-columns: 1fr; } }

/* ボタン */
.v8-btn {
	display: inline-block; padding: 15px 46px;
	font-size: 14px; letter-spacing: .22em; color: var(--v8-white) !important;
	border: 1px solid var(--v8-cyan); border-radius: 2px;
	background: rgba(56, 225, 255, .06);
	text-decoration: none !important;
	transition: all .35s ease;
}
.v8-btn:hover { background: rgba(56, 225, 255, .14); box-shadow: var(--v8-glow-cyan); text-shadow: 0 0 8px rgba(56, 225, 255, .8); }
.v8-btn.-mag { border-color: var(--v8-mag); background: rgba(255, 95, 181, .07); }
.v8-btn.-mag:hover { background: rgba(255, 95, 181, .15); box-shadow: var(--v8-glow-mag); text-shadow: 0 0 8px rgba(255, 95, 181, .8); }
.v8-btn.-ghost { border-color: var(--v8-line); background: transparent; }
.v8-btn.-ghost:hover { border-color: var(--v8-grey); box-shadow: none; text-shadow: none; }
/* 塗りボタン(主要CTA用) */
.v8-btn.-fill {
	background: linear-gradient(135deg, #FF5FB5, #E8439D);
	border-color: transparent; color: #fff !important; font-weight: 600;
	box-shadow: 0 0 22px rgba(255, 95, 181, .35);
}
.v8-btn.-fill:hover { box-shadow: var(--v8-glow-mag); transform: translateY(-1px); text-shadow: none; }
.v8-btn.-fillc {
	background: linear-gradient(135deg, #38E1FF, #19B9E8);
	border-color: transparent; color: #07203A !important; font-weight: 600;
	box-shadow: 0 0 22px rgba(56, 225, 255, .3);
}
.v8-btn.-fillc:hover { box-shadow: var(--v8-glow-cyan); transform: translateY(-1px); text-shadow: none; }

/* ============================================================
   ヒーロー
   ============================================================ */
.v8-hero {
	position: relative; min-height: 100vh;
	display: flex; align-items: flex-end; justify-content: center;
	background-size: cover; background-position: center 38%;
	overflow: hidden; text-align: center; padding: 120px 24px 15vh;
}
/* 写真(ネオン壁)を上に見せ、文字背後は強めに沈めてタイトルをくっきり可読に */
.v8-hero::before {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(ellipse 115% 52% at 50% 88%, rgba(6,9,25,.85), rgba(6,9,25,.30) 52%, transparent 78%),
		linear-gradient(180deg, rgba(6,9,25,.22) 0%, rgba(6,9,25,.04) 24%, rgba(10,14,39,.5) 62%, rgba(10,14,39,.94) 90%, var(--v8-navy) 100%);
}
@media (max-width: 599px) {
	.v8-hero { background-position: center 30%; padding-bottom: 12vh; }
	.v8-hero::before {
		background:
			radial-gradient(ellipse 135% 48% at 50% 84%, rgba(6,9,25,.86), rgba(6,9,25,.35) 55%, transparent 80%),
			linear-gradient(180deg, rgba(6,9,25,.25) 0%, rgba(6,9,25,.08) 28%, rgba(10,14,39,.6) 66%, rgba(10,14,39,.96) 92%, var(--v8-navy) 100%);
	}
}
.v8-hero__inner {
	position: relative; z-index: 1; max-width: 760px;
	padding: 36px 48px;
	background: radial-gradient(ellipse 100% 100% at 50% 50%, rgba(6,9,25,.8) 0%, rgba(6,9,25,.58) 56%, rgba(6,9,25,0) 100%);
	border-radius: 14px;
}
@media (max-width: 599px) { .v8-hero__inner { padding: 24px 18px; } }
.v8-hero__en {
	font-size: 13px; letter-spacing: .5em; color: var(--v8-cyan);
	text-shadow: var(--v8-glow-cyan); margin-bottom: 28px; text-transform: uppercase;
}
.v8-hero__title {
	font-size: clamp(32px, 5.8vw, 58px); line-height: 1.55; color: var(--v8-white);
	font-weight: 600; letter-spacing: .08em; margin: 0 0 30px;
	text-shadow: 0 2px 18px rgba(6,9,25,1), 0 0 44px rgba(6,9,25,.95), 0 0 90px rgba(6,9,25,.7);
}
.v8-hero__sub { font-size: clamp(13px, 1.7vw, 16px); line-height: 2.2; color: #E6EAF7; margin-bottom: 44px; text-shadow: 0 1px 12px rgba(6,9,25,1), 0 0 30px rgba(6,9,25,.95); }
.v8-hero__btns { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }

/* スクロールサイン */
.v8-hero__scroll {
	position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
	font-size: 10px; letter-spacing: .4em; color: var(--v8-muted); z-index: 1;
}
.v8-hero__scroll::after {
	content: ""; display: block; width: 1px; height: 42px;
	background: linear-gradient(180deg, var(--v8-cyan), transparent);
	margin: 10px auto 0; animation: v8scroll 2.2s ease-in-out infinite;
}
@keyframes v8scroll { 0% { transform: scaleY(0); transform-origin: top } 45% { transform: scaleY(1); transform-origin: top } 55% { transform: scaleY(1); transform-origin: bottom } 100% { transform: scaleY(0); transform-origin: bottom } }

/* ============================================================
   DAY / NIGHT 対比
   ============================================================ */
.v8-daynight { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--v8-line); border-radius: 4px; overflow: hidden; }
@media (max-width: 819px) { .v8-daynight { grid-template-columns: 1fr; } }
.v8-dn {
	padding: 56px 40px; position: relative; min-height: 380px;
	display: flex; flex-direction: column; justify-content: flex-end;
	background-size: cover; background-position: center;
}
.v8-dn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,9,25,.28), rgba(6,9,25,.93)); }
.v8-dn > * { position: relative; z-index: 1; }
.v8-dn__label { font-size: 12px; letter-spacing: .42em; margin-bottom: 14px; }
.v8-dn.-day .v8-dn__label { color: var(--v8-gold); }
.v8-dn.-night .v8-dn__label { color: var(--v8-mag); text-shadow: var(--v8-glow-mag); }
.v8-dn h3 { font-size: 21px; margin-bottom: 12px; }
.v8-dn p { font-size: 13.5px; line-height: 2; color: var(--v8-grey); margin: 0; }

/* ============================================================
   メンバーシップ ティア
   ============================================================ */
.v8-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.v8-tiers.-two { grid-template-columns: repeat(2, 1fr); max-width: 760px; margin-inline: auto; }
@media (max-width: 959px) { .v8-tiers { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px) { .v8-tiers, .v8-tiers.-two { grid-template-columns: 1fr; } }
.v8-tier {
	background: var(--v8-surface); border: 1px solid var(--v8-line);
	border-radius: 4px; padding: 34px 26px 30px; text-align: center;
	display: flex; flex-direction: column; gap: 0;
	transition: transform .3s ease, box-shadow .3s ease;
}
.v8-tier:hover { transform: translateY(-4px); }
.v8-tier__class { font-size: 11px; letter-spacing: .34em; color: var(--v8-muted); margin-bottom: 10px; }
.v8-tier__name { font-size: 23px; letter-spacing: .12em; color: var(--v8-white); margin: 0 0 6px; }
.v8-tier__price { font-size: 14px; color: var(--v8-grey); margin-bottom: 18px; }
.v8-tier__price b { font-size: 19px; color: var(--v8-white); font-weight: 600; }
.v8-tier hr { border: 0; border-top: 1px solid var(--v8-line); margin: 0 0 18px; }
.v8-tier ul { list-style: none; margin: 0; padding: 0; text-align: left; font-size: 13px; line-height: 1.8; color: var(--v8-grey); }
.v8-tier ul li { padding: 7px 0 7px 18px; position: relative; border-bottom: 1px dashed rgba(185,191,216,.1); }
.v8-tier ul li::before { content: "—"; position: absolute; left: 0; color: var(--v8-cyan); }
/* ============================================================
   クラス別 素材マテリアル装飾
   Silver=銀 / Gold=金 / Platinum=白銀 / Diamond=ダイヤ / Black=漆黒
   ============================================================ */
.v8-tier { position: relative; overflow: hidden; }
.v8-tier::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; }
/* クラス名をメタリックなグラデ文字に(見出しリセットより詳細度を上げる) */
.post_content h3.v8-tier__name, .v8-tier h3.v8-tier__name {
	-webkit-background-clip: text !important;
	background-clip: text !important;
}

/* --- Prime(ネオンシアン) --- */
.v8-tier.-prime::before { background: linear-gradient(90deg, transparent, var(--v8-cyan), transparent); box-shadow: 0 0 12px rgba(56,225,255,.5); }
.v8-tier.-prime .v8-tier__name { color: var(--v8-cyan); }

/* 素材カード共通: 斜めの光沢スイープを背景レイヤーで重ねる */
.v8-tier.-silver, .v8-tier.-gold, .v8-tier.-plat, .v8-tier.-dia {
	border: none;
	box-shadow: 0 10px 34px rgba(0, 0, 0, .45);
}
/* 明るい素材カード上の文字色(ラベルはWCAG AA確保) */
.v8-tier.-silver .v8-tier__class, .v8-tier.-gold .v8-tier__class,
.v8-tier.-plat .v8-tier__class, .v8-tier.-dia .v8-tier__class { color: #46506A; }
.v8-tier.-silver ul, .v8-tier.-gold ul, .v8-tier.-plat ul, .v8-tier.-dia ul { color: #232B40; }
.v8-tier.-silver ul li, .v8-tier.-gold ul li, .v8-tier.-plat ul li, .v8-tier.-dia ul li { border-bottom: 1px dashed rgba(20, 26, 46, .18); }
.v8-tier.-silver hr, .v8-tier.-gold hr, .v8-tier.-plat hr, .v8-tier.-dia hr { border-top: 1px solid rgba(20, 26, 46, .22); }

/* --- Silver: ブラッシュドシルバーの券面 --- */
.v8-tier.-silver {
	background:
		linear-gradient(115deg, transparent 36%, rgba(255,255,255,.45) 47%, transparent 57%),
		linear-gradient(135deg, #DEE5F0 0%, #B9C3D6 22%, #F2F6FD 46%, #9FACC2 72%, #D6DEEC 100%);
}
.v8-tier.-silver .v8-tier__name { color: #2E3850; text-shadow: 0 1px 0 rgba(255,255,255,.65); }
.v8-tier.-silver ul li::before { color: #5A6680; }

/* --- Gold: 金無垢の券面 --- */
.v8-tier.-gold {
	background:
		linear-gradient(115deg, transparent 36%, rgba(255,250,225,.5) 47%, transparent 57%),
		linear-gradient(135deg, #DDBC60 0%, #C09A38 22%, #F2DF9E 46%, #A8842B 72%, #DFC066 100%);
}
.v8-tier.-gold .v8-tier__class { color: #54400F; }
.v8-tier.-gold .v8-tier__name { color: #4A3A10; text-shadow: 0 1px 0 rgba(255, 246, 214, .7); }
.v8-tier.-gold ul { color: #4A3A12; }
.v8-tier.-gold ul li { border-bottom: 1px dashed rgba(74, 58, 18, .22); }
.v8-tier.-gold hr { border-top: 1px solid rgba(74, 58, 18, .28); }
.v8-tier.-gold ul li::before { color: #7A6220; }

/* --- Platinum: 白金の券面(白光の二重フレーム+四隅スタッド+呼吸グロー) --- */
.v8-tier.-plat {
	background:
		radial-gradient(circle 3px at 14px 14px, #FFFFFF 40%, #8FA3B8 70%, transparent 75%),
		radial-gradient(circle 3px at calc(100% - 14px) 14px, #FFFFFF 40%, #8FA3B8 70%, transparent 75%),
		radial-gradient(circle 3px at 14px calc(100% - 14px), #FFFFFF 40%, #8FA3B8 70%, transparent 75%),
		radial-gradient(circle 3px at calc(100% - 14px) calc(100% - 14px), #FFFFFF 40%, #8FA3B8 70%, transparent 75%),
		linear-gradient(115deg, transparent 36%, rgba(255,255,255,.75) 47%, transparent 57%),
		linear-gradient(135deg, #F0F5FA 0%, #D3DFEA 22%, #FFFFFF 46%, #BCCCDC 72%, #ECF2F8 100%);
	background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 300% 100%, 100% 100%;
	animation: v8sheen 7s ease-in-out infinite, v8platglow 4s ease-in-out infinite;
	box-shadow: 0 10px 34px rgba(0, 0, 0, .45), 0 0 30px rgba(190, 222, 245, .45),
		inset 0 0 0 1px rgba(255, 255, 255, .9), inset 0 0 0 5px rgba(143, 163, 184, .28);
}
.v8-tier.-plat .v8-tier__name { color: #22303E; text-shadow: 0 1px 0 rgba(255,255,255,.8); }
.v8-tier.-plat ul li::before { color: #51677C; }
@keyframes v8sheen {
	0%, 100% { background-position: 0 0, 0 0, 0 0, 0 0, 0% 0, 0 0; }
	50% { background-position: 0 0, 0 0, 0 0, 0 0, 100% 0, 0 0; }
}
@keyframes v8platglow {
	0%, 100% { box-shadow: 0 10px 34px rgba(0,0,0,.45), 0 0 26px rgba(190,222,245,.35), inset 0 0 0 1px rgba(255,255,255,.9), inset 0 0 0 5px rgba(143,163,184,.28); }
	50% { box-shadow: 0 10px 34px rgba(0,0,0,.45), 0 0 44px rgba(200,230,250,.65), inset 0 0 0 1px rgba(255,255,255,1), inset 0 0 0 5px rgba(143,163,184,.4); }
}

/* --- Diamond: 虹彩のプリズム券面(宝石クラスタ+シマー+スパークル+プリズムグロー) --- */
.v8-tier.-dia {
	background:
		linear-gradient(115deg, transparent 34%, rgba(255,255,255,.7) 46%, transparent 56%),
		linear-gradient(135deg, #E8F6FF 0%, #D4EEFF 14%, #FFE4F2 32%, #F2FBFF 48%, #D8E6FF 64%, #FFE9F6 80%, #E2F6FF 100%);
	background-size: 300% 100%, 220% 100%;
	animation: v8diamond 6s ease-in-out infinite;
	box-shadow: 0 10px 34px rgba(0, 0, 0, .45), 0 0 34px rgba(150, 218, 255, .55), 0 0 64px rgba(255, 170, 215, .35),
		inset 0 0 0 1px rgba(255, 255, 255, .95), inset 0 0 0 4px rgba(168, 233, 255, .35), inset 0 0 0 7px rgba(255, 215, 236, .2);
}
@keyframes v8diamond {
	0%, 100% { background-position: 0% 0, 0% 0; }
	50% { background-position: 100% 0, 100% 0; }
}
.v8-tier.-dia .v8-tier__name { color: #1E3248; text-shadow: 0 1px 0 rgba(255,255,255,.85); }
.v8-tier.-dia ul li::before { color: #3D7A9C; }
/* スパークル(カードHTML側で複数配置) */
.v8-spark {
	position: absolute; color: #FFFFFF; pointer-events: none; line-height: 1;
	text-shadow: 0 0 10px rgba(120,200,235,.95), 0 0 22px rgba(255,160,210,.65);
	animation: v8spark 3.2s ease-in-out infinite;
}
@keyframes v8spark { 0%,100% { opacity: .2; transform: scale(.85) } 50% { opacity: 1; transform: scale(1.1) } }

/* 宝石(ブリリアントカット風・CSSクリップパス) */
.v8-gemrow { display: flex; gap: 12px; justify-content: center; align-items: center; height: 34px; margin: 2px 0 12px; }
.v8-gem {
	display: block; width: 20px; height: 20px;
	clip-path: polygon(50% 100%, 0% 36%, 16% 10%, 50% 0%, 84% 10%, 100% 36%);
	background: conic-gradient(from 210deg at 50% 32%,
		#FFFFFF, #BDE9FF 10%, #FFFFFF 20%, #FFD7EC 32%, #C8F2FF 45%,
		#FFFFFF 55%, #A8E9FF 68%, #FFE9F6 80%, #FFFFFF 90%, #DFF4FF);
	filter: drop-shadow(0 0 5px rgba(150, 220, 255, .95)) drop-shadow(0 0 12px rgba(255, 170, 215, .55));
	animation: v8gemshine 2.8s ease-in-out infinite;
}
.v8-gem.-big { width: 30px; height: 30px; }
@keyframes v8gemshine {
	0%, 100% { filter: drop-shadow(0 0 4px rgba(150,220,255,.7)) drop-shadow(0 0 9px rgba(255,170,215,.4)); transform: translateY(0); }
	50% { filter: drop-shadow(0 0 9px rgba(170,230,255,1)) drop-shadow(0 0 20px rgba(255,180,220,.75)); transform: translateY(-1px); }
}
/* プラチナ石(白銀の冷たい輝き) */
.v8-gem.-platstone {
	background: conic-gradient(from 210deg at 50% 32%,
		#FFFFFF, #D8E4EE 12%, #FFFFFF 24%, #AEBfCE 38%, #F2F7FB 52%,
		#C8D6E2 64%, #FFFFFF 76%, #DCE7F0 88%, #FFFFFF);
	filter: drop-shadow(0 0 5px rgba(230, 242, 252, .95)) drop-shadow(0 0 12px rgba(190, 215, 235, .6));
	animation: v8platshine 3s ease-in-out infinite;
}
@keyframes v8platshine {
	0%, 100% { filter: drop-shadow(0 0 4px rgba(230,242,252,.7)) drop-shadow(0 0 9px rgba(190,215,235,.4)); }
	50% { filter: drop-shadow(0 0 10px rgba(255,255,255,1)) drop-shadow(0 0 20px rgba(200,225,245,.8)); }
}

/* オニキス(黒宝石×金) */
.v8-gem.-onyx {
	background: conic-gradient(from 210deg at 50% 32%,
		#4A4A56, #15151C 12%, #6E6242 24%, #0A0A10 38%, #3A3A46 52%,
		#0E0E14 64%, #8A744A 76%, #1A1A22 88%, #4A4A56);
	filter: drop-shadow(0 0 5px rgba(231, 198, 107, .8)) drop-shadow(0 0 12px rgba(231, 198, 107, .4));
	animation: v8onyxshine 3.4s ease-in-out infinite;
}
@keyframes v8onyxshine {
	0%, 100% { filter: drop-shadow(0 0 4px rgba(231,198,107,.6)) drop-shadow(0 0 9px rgba(231,198,107,.3)); }
	50% { filter: drop-shadow(0 0 9px rgba(245,215,130,1)) drop-shadow(0 0 20px rgba(231,198,107,.6)); }
}

/* --- Black: 漆黒×金の券面(金二重リング+四隅コーナー飾り) --- */
.v8-tier.-black {
	background:
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat 10px 10px / 18px 1px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat 10px 10px / 1px 18px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat calc(100% - 10px) 10px / 18px 1px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat calc(100% - 10px) 10px / 1px 18px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat 10px calc(100% - 10px) / 18px 1px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat 10px calc(100% - 28px) / 1px 18px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat calc(100% - 10px) calc(100% - 10px) / 18px 1px,
		linear-gradient(90deg, #E7C66B, #E7C66B) no-repeat calc(100% - 10px) calc(100% - 28px) / 1px 18px,
		linear-gradient(115deg, transparent 36%, rgba(255,235,180,.12) 47%, transparent 57%) 0 0 / 300% 100%,
		radial-gradient(ellipse 80% 60% at 50% -10%, rgba(231,198,107,.12), transparent 60%),
		linear-gradient(170deg, #15151D, #050508);
	animation: v8blackpulse 5s ease-in-out infinite;
	border: 1px solid rgba(231, 198, 107, .5);
	box-shadow: 0 10px 34px rgba(0, 0, 0, .6), 0 0 28px rgba(231, 198, 107, .3),
		inset 0 0 0 1px rgba(231, 198, 107, .2);
}
@keyframes v8blackpulse {
	0%, 100% { box-shadow: 0 10px 34px rgba(0,0,0,.6), 0 0 24px rgba(231,198,107,.25), inset 0 0 0 1px rgba(231,198,107,.18); }
	50% { box-shadow: 0 10px 34px rgba(0,0,0,.6), 0 0 42px rgba(231,198,107,.45), inset 0 0 0 1px rgba(231,198,107,.3); }
}
.v8-tier.-black .v8-tier__name {
	background-image: linear-gradient(180deg, #FFF2C8 5%, #E7C66B 45%, #9C7B2E 65%, #F4DF9C 100%) !important;
	color: transparent;
	filter: drop-shadow(0 0 12px rgba(231,198,107,.35));
}
.v8-tier.-black ul li::before { color: var(--v8-gold); }

/* ============================================================
   特典フィーチャー(1特典=全幅1ブロック・画像付き)
   ============================================================ */
.v8-benefit {
	display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: center;
	padding: 44px 0; border-bottom: 1px solid var(--v8-line);
}
.v8-benefit:last-of-type { border-bottom: none; }
.v8-benefit__img { margin: 0; border-radius: 4px; overflow: hidden; border: 1px solid var(--v8-line); }
.v8-benefit__img img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
/* 反転行はカラム幅もミラーして画像サイズを左右で揃える */
.v8-benefit.-rev { grid-template-columns: 7fr 5fr; }
.v8-benefit.-rev .v8-benefit__img { order: 2; }
.v8-benefit__num { font-size: 11px; letter-spacing: .32em; color: var(--v8-cyan); display: block; margin-bottom: 14px; text-transform: uppercase; }
.v8-benefit.-gold .v8-benefit__num { color: var(--v8-gold); }
.v8-benefit h4 { font-size: clamp(18px, 2.2vw, 22px); color: var(--v8-white); letter-spacing: .08em; margin: 0 0 14px; }
.v8-benefit h4 small { font-size: 12px; color: var(--v8-muted); margin-left: 10px; }
.v8-benefit p { font-size: 14px; line-height: 2; color: var(--v8-grey); margin: 0; }
.v8-benefit p b { color: var(--v8-white); font-weight: 600; }
@media (max-width: 819px) {
	.v8-benefit { grid-template-columns: 1fr; gap: 22px; padding: 36px 0; }
	.v8-benefit.-rev .v8-benefit__img { order: 0; }
}

/* ============================================================
   画像まわり
   ============================================================ */
.v8-figure { border-radius: 4px; overflow: hidden; border: 1px solid var(--v8-line); margin: 0; }
.v8-figure img { display: block; width: 100%; height: auto; }
.v8-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 599px) { .v8-gallery { grid-template-columns: 1fr; } }
.v8-gallery .v8-figure { aspect-ratio: 1; }
.v8-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.v8-gallery .v8-figure:hover img { transform: scale(1.04); }

/* 画像+テキスト 2カラム */
.v8-split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 819px) { .v8-split { grid-template-columns: 1fr; gap: 28px; } }

/* ============================================================
   STEP / フロー
   ============================================================ */
.v8-steps { counter-reset: v8step; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 819px) { .v8-steps { grid-template-columns: 1fr; } }
.v8-step { background: var(--v8-surface); border: 1px solid var(--v8-line); border-radius: 4px; padding: 28px 20px; position: relative; }
.v8-step::before {
	counter-increment: v8step; content: "STEP 0" counter(v8step);
	display: block; font-size: 11px; letter-spacing: .32em; color: var(--v8-mag); margin-bottom: 14px;
}
.v8-step h4 { font-size: 16px; margin: 0 0 8px; color: var(--v8-white); }
.v8-step p { font-size: 12.5px; line-height: 1.95; color: var(--v8-grey); margin: 0; }

/* 会員ロール(6種) アイコングリッド */
.v8-roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 30px; }
@media (max-width: 600px) { .v8-roles { grid-template-columns: repeat(2, 1fr); } }
.v8-role {
	display: flex; flex-direction: column; align-items: center; gap: 11px; text-align: center;
	padding: 20px 8px; border: 1px solid var(--v8-line); border-radius: 14px;
	background: linear-gradient(180deg, rgba(56,225,255,.05), rgba(255,95,181,.04));
	transition: transform .3s, border-color .3s, box-shadow .3s;
}
.v8-role:hover { transform: translateY(-3px); border-color: rgba(56,225,255,.45); box-shadow: 0 10px 26px rgba(0,0,0,.35); }
.v8-role__ic {
	width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%;
	border: 1px solid rgba(56,225,255,.4); color: var(--v8-cyan);
	box-shadow: inset 0 0 14px rgba(56,225,255,.18), 0 0 12px rgba(56,225,255,.14);
}
.v8-role:nth-child(even) .v8-role__ic {
	border-color: rgba(255,95,181,.4); color: var(--v8-mag);
	box-shadow: inset 0 0 14px rgba(255,95,181,.18), 0 0 12px rgba(255,95,181,.14);
}
.v8-role__ic svg { width: 23px; height: 23px; }
.v8-role__t { font-size: 13px; letter-spacing: .04em; color: var(--v8-white); }

/* ============================================================
   CTA帯
   ============================================================ */
.v8-cta {
	text-align: center; padding: 110px 24px;
	background: radial-gradient(ellipse 70% 90% at 50% 110%, rgba(255,95,181,.13), transparent 60%),
		radial-gradient(ellipse 70% 90% at 50% -10%, rgba(56,225,255,.10), transparent 60%),
		var(--v8-navy-deep);
	border-top: 1px solid var(--v8-line);
}
.v8-cta .v8-h2 { margin-bottom: 16px; }
.v8-cta p { color: var(--v8-grey); margin-bottom: 40px; }

/* 注記(行長は読める幅に制限) */
.v8-note { font-size: 11.5px; line-height: 1.9; color: var(--v8-muted); max-width: 760px; }
.v8-center .v8-note, .v8-note[style*="text-align:center"] { margin-inline: auto; }
.v8-note.-up { font-size: 14px; color: #D7DCEF; }

/* 改行させたくない塊（欧文・数値単位・括弧句などの語割れ/禁則防止） */
.v8-nb { white-space: nowrap; }

/* テーブルのモバイル折返し対策 */
@media (max-width: 599px) {
	.v8-card table th { width: 5em !important; padding-right: 6px !important; font-size: 12px; vertical-align: top; }
	.v8-card table td { font-size: 12.5px; }
}

/* 区切りの発光ライン */
.v8-divider { height: 1px; border: 0; margin: 0; background: linear-gradient(90deg, transparent, rgba(56,225,255,.35), rgba(255,95,181,.35), transparent); }

/* ============================================================
   レイアウト調整(SWELLコンテナからの全幅ブレイクアウト)
   ============================================================ */
/* コンテナは下のリセットで全幅化済みのため、ブレイクアウト計算は使わない */
.v8-full { width: 100%; margin: 0; }
.l-mainContent__inner, .l-articleWrap, .l-article__inner {
	max-width: none !important; width: 100% !important;
	padding: 0 !important; margin: 0 !important;
}

/* 固定ページはタイトル帯・パンくず・サイドバー・余白を消して全面キャンバス化
   (※bodyクラスが出力されないSWELL構造のためグローバル適用。投稿を作る際は要調整) */
.c-pageTitle, .p-articleHead, .l-articleBottom, .p-breadcrumb { display: none; }
.l-sidebar { display: none !important; }
.l-content { max-width: none !important; padding: 0 !important; margin: 0 !important; }
.l-mainContent, main.l-mainContent {
	width: 100% !important; max-width: none !important;
	flex: 1 1 100% !important; padding: 0 !important; margin: 0 !important;
}
.w-mainContent { width: 100% !important; max-width: none !important; padding: 0 !important; }
.post_content { margin: 0 !important; padding: 0 !important; }
.post_content p:empty { display: none; }
/* wpautopがグリッド内に差し込む迷子の<p>や<br>を無効化 */
.v8-benefit > p, .v8-benefit > br, .v8-daynight > p, .v8-split > p { display: none; }
.v8-tier > br, .v8-tiers > br, .v8-gemrow > br { display: none !important; }
.l-main, .l-article { padding: 0 !important; margin: 0 !important; }

/* 下層ページ共通ヘッダー */
.v8-pagehead {
	padding: 110px 24px 78px; text-align: center; position: relative;
	background:
		radial-gradient(ellipse 60% 80% at 18% -10%, rgba(56,225,255,.10), transparent 55%),
		radial-gradient(ellipse 60% 80% at 82% -10%, rgba(255,95,181,.10), transparent 55%),
		var(--v8-navy-deep);
	border-bottom: 1px solid var(--v8-line);
}
.v8-pagehead__en { font-size: 12px; letter-spacing: .5em; color: var(--v8-cyan); text-shadow: var(--v8-glow-cyan); margin-bottom: 18px; text-transform: uppercase; }
.v8-pagehead h1 { font-size: clamp(24px, 3.6vw, 36px); color: var(--v8-white); letter-spacing: .1em; margin: 0; line-height: 1.7; }

/* 日本語の不自然な折返し抑制 */
/* 日本語を文節単位で改行（中途半端な折返しを抑制）— 見出し＋本文に広く適用 */
.v8-pagehead h1, .v8-h2, .v8-h3, .v8-hero__title, .v8-tier__name, .v8-benefit h4,
.v8-lead, .v8-hero__sub, .v8-card p, .v8-benefit p, .v8-dn p, .v8-step p, .v8-step h4,
.v8-tier ul li, .v8-note, .v8-cta p, .v8-tier__price, .v8-tag, .v8-card h3, .v8-card h4 {
	word-break: auto-phrase;
	line-break: strict;
}
@supports not (word-break: auto-phrase) {
	.v8-pagehead h1, .v8-h2, .v8-h3, .v8-hero__title, .v8-hero__sub, .v8-lead,
	.v8-card p, .v8-benefit p, .v8-dn p, .v8-step p, .v8-note, .v8-cta p {
		word-break: normal; overflow-wrap: anywhere; line-break: strict;
	}
}
