/**
 * Membership Block Styles
 * 会員ページ用ブロックスタイル
 * 
 * @package Jiyujin
 */

/* ============================================
   グループブロックスタイル
   ============================================ */

/* セクション背景（ベージュ） */
.wp-block-group.is-style-section-beige-bg {
	background-color: #f5ede0;
}

/* コンテンツ幅980px */
.wp-block-group.is-style-membership-content-980 {
	width: 100%;
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

.wp-block-group.is-style-membership-content-980.is-layout-constrained {
	max-width: 980px;
}

/* カード（ベージュ背景） */
.wp-block-group.is-style-card-normal-bg {
	background-color: #fff;
	border-radius: 20px;
	padding: 40px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* カード（プレミアム） */
.wp-block-group.is-style-card-premium {
	background: linear-gradient(135deg, #fff 0%, #f5ede0 100%);
	border: 3px solid #ff8063;
	border-radius: 20px;
	padding: 40px;
	box-shadow: 0 6px 30px rgba(255, 128, 99, 0.2);
	position: relative;
}

/* グラデーション（ベージュ→白） */
.wp-block-group.is-style-gradient-beige-white {
	background: linear-gradient(135deg, #f5ede0 0%, #fff 100%);
	border: 2px solid #f5ede0;
	border-radius: 20px;
	padding: 50px;
	box-shadow: 0 4px 20px rgba(245, 237, 224, 0.5);
}

/* ============================================
   会員プランカード（プラン1〜4）
   ============================================ */

#member.wp-block-group .wp-block-group[class*="is-style-membership-plan-"],
.wp-block-group[class*="is-style-membership-plan-"] {
	position: relative;
	width: 100%;
	max-width: 470px;
	margin: 0 auto 50px;
	padding: 100px 40px 60px;
	box-sizing: border-box;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0;
	overflow: visible;
	isolation: isolate;
	color: #373331;
	gap: 0;
}

.wp-block-group[class*="is-style-membership-plan-"] > * {
	position: relative;
	z-index: 1;
	margin-block-start: 0;
	margin-block-end: 0;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100%;
}

.wp-block-group[class*="is-style-membership-plan-"]::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 100% 100%;
	pointer-events: none;
}

.wp-block-group[class*="is-style-membership-plan-"]::after {
	content: '';
	position: absolute;
	z-index: 2;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	pointer-events: none;
}

/* Plan 1（GUEST） */
.wp-block-group.is-style-membership-plan-01::before {
	background-image: url("/theme/images/membership/bg_membership_plan01.webp");
}

.wp-block-group.is-style-membership-plan-01::after {
	background-image: url("/theme/images/membership/illust_membership_plan01.webp");
	top: -42px;
	right: -12px;
	width: min(50%, 228px);
	aspect-ratio: 458 / 262;
}

/* Plan 2（FUN） */
.wp-block-group.is-style-membership-plan-02::before {
	background-image: url("/theme/images/membership/bg_membership_plan02.webp");
}

.wp-block-group.is-style-membership-plan-02::after {
	background-image: url("/theme/images/membership/illust_membership_plan02.webp");
	top: -38px;
	right: -12px;
	width: min(56%, 276px);
	aspect-ratio: 553 / 224;
}

/* Plan 3（LITE） */
.wp-block-group.is-style-membership-plan-03 {
	color: #fff;
}

.wp-block-group.is-style-membership-plan-03::before {
	background-image: url("/theme/images/membership/bg_membership_plan03.webp");
}

.wp-block-group.is-style-membership-plan-03::after {
	background-image: url("/theme/images/membership/illust_membership_plan03.webp");
	top: 35%;
	right: -25px;
	transform: none;
	width: min(30%, 110px);
	aspect-ratio: 221 / 198;
}

/* Plan 4（STANDARD） */
.wp-block-group.is-style-membership-plan-04 {
	color: #fff;
}

.wp-block-group.is-style-membership-plan-04::before {
	background-image: url("/theme/images/membership/bg_membership_plan04.webp");
}

.wp-block-group.is-style-membership-plan-04::after {
	background-image: url("/theme/images/membership/illust_membership_plan04.webp");
	top: 32%;
	right: -25px;
	transform: none;
	width: min(30%, 113px);
	aspect-ratio: 227 / 203;
}

/* プランカード内レイアウト */
.wp-block-group[class*="is-style-membership-plan-"] .membership-plan-label {
	margin: 0;
	font-size: 0.875rem;
	font-style: italic;
	line-height: 1.6;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-group.is-layout-flex.is-nowrap {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 20px;
	margin: 0;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-group.is-layout-flex.is-nowrap .wp-block-heading {
	margin: 0;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-group.is-layout-flex.is-nowrap p {
	margin: 0;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-heading,
.wp-block-group[class*="is-style-membership-plan-"] p {
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0 !important;
	margin-right: 0 !important;
	line-height: 2;
}

/* Plan 3・4：本文エリア（左寄せ・幅100%） */
.wp-block-group.is-style-membership-plan-03 > :not(.wp-block-buttons),
.wp-block-group.is-style-membership-plan-04 > :not(.wp-block-buttons) {
	max-width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-buttons {
	margin: 0;
	justify-content: center;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-button {
	width: auto;
	max-width: 100%;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.wp-block-group[class*="is-style-membership-plan-"] .wp-block-button.is-style-solid-orange-white-text .wp-block-button__link,
.wp-block-group[class*="is-style-membership-plan-"] .wp-block-button.is-style-solid-gray-white-text .wp-block-button__link {
	border-radius: 10px;
	box-shadow: none;
}

.wp-block-group.is-style-membership-plan-03 a:not(.wp-block-button__link),
.wp-block-group.is-style-membership-plan-04 a:not(.wp-block-button__link) {
	color: #fff;
}

/* ============================================
   #member セクション（余白リセット）
   ============================================ */

#member.wp-block-group,
.editor-styles-wrapper #member.wp-block-group {
	padding: 0;
	gap: 0;
}

#member.wp-block-group.is-layout-constrained > *,
#member.wp-block-group.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
#member.wp-block-group > .wp-block-group__inner-container > *,
#member.wp-block-group > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.editor-styles-wrapper #member.wp-block-group.is-layout-constrained > *,
.editor-styles-wrapper #member.wp-block-group.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.editor-styles-wrapper #member.wp-block-group > .wp-block-group__inner-container > *,
.editor-styles-wrapper #member.wp-block-group > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* ============================================
   プラン一覧グリッド（PC 2列 / SP 1列）
   ============================================ */

.wp-block-group.is-style-membership-plans-grid,
#member.wp-block-group .wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]),
.wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 24px;
	width: 100%;
	max-width: 980px;
	margin-inline: auto;
}

.wp-block-group.is-style-membership-plans-grid > [class*="is-style-membership-plan-"],
#member.wp-block-group .wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]) > [class*="is-style-membership-plan-"],
.wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]) > [class*="is-style-membership-plan-"] {
	max-width: 100%;
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 0;
}

/* ============================================
   レスポンシブ用ユーティリティ
   ============================================ */

/* sp-text-left … 中央揃えテキストを SP のみ左寄せ（追加 CSS クラス欄に指定） */
/* sp-button-center … 左寄せボタンを SP のみ中央寄せ（個別ボタンブロックの追加 CSS クラス欄に指定） */
/* sp-nowrap … SP のみ改行しない（追加 CSS クラス欄に指定） */
/* mct-row-label … 比較表の行見出しセル（td に直接指定・左揃え・左右 padding） */

/* SPで非表示（PCのみ表示） */
@media (max-width: 768px) {
	.sp-hide {
		display: none !important;
	}

	.sp-nowrap {
		white-space: nowrap !important;
	}

	.sp-text-left,
	.sp-text-left.has-text-align-center,
	.has-text-align-center.sp-text-left,
	.sp-text-left[data-align="center"] {
		text-align: left !important;
	}

	/* 左寄せボタン → SPのみ中央寄せ */
	.wp-block-button.sp-button-center {
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* PCで非表示（SPのみ表示） */
.pc-hide {
	display: none !important;
}

@media (max-width: 768px) {
	.pc-hide {
		display: block !important;
	}
}

/* スペーサー：PC 80px / SP 48px */
.wp-block-spacer.rspacer-80-48 {
	height: 80px !important;
	min-height: 0 !important;
}

@media (max-width: 768px) {
	.wp-block-spacer.rspacer-80-48 {
		height: 48px !important;
	}
}

/* スペーサー：PC 180px / SP 88px */
.wp-block-spacer.rspacer-180-88 {
	height: 180px !important;
	min-height: 0 !important;
}

@media (max-width: 768px) {
	.wp-block-spacer.rspacer-180-88 {
		height: 88px !important;
	}
}


/* ============================================
   ボタンブロックスタイル
   ============================================ */

/* オレンジ・グレー共通 */
.wp-block-button.is-style-solid-orange-white-text .wp-block-button__link,
.wp-block-button.is-style-solid-gray-white-text .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 320px;
	height: 90px;
	padding: 0;
	box-sizing: border-box;
	border: none;
	border-radius: 10px;
	color: #fff;
	font-size: 24px !important;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

/* オレンジ背景＋白テキスト */
.wp-block-button.is-style-solid-orange-white-text .wp-block-button__link {
	background: #ff8063;
}

.wp-block-button.is-style-solid-orange-white-text .wp-block-button__link:hover {
	opacity: 0.85;
	background: #ff8063;
	transform: none;
	box-shadow: none;
}

/* グレー背景＋白テキスト（GUESTプラン用） */
.wp-block-button.is-style-solid-gray-white-text .wp-block-button__link {
	background: #757575;
}

.wp-block-button.is-style-solid-gray-white-text .wp-block-button__link:hover {
	opacity: 0.85;
	background: #757575;
	transform: none;
	box-shadow: none;
}

/* 背景画像＋白テキスト */
.wp-block-button.is-style-bg-image-white-text .wp-block-button__link {
	display: inline-block;
    padding: 15px 50px;
    background: url("/theme/images/membership_pat.webp");
    background-size: 100% 100%;
    color: #f5ede0;
    letter-spacing: 0.02em;
    text-decoration: none;
	width: 400px;
	text-align: center;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	text-decoration: none;
}

.wp-block-button.is-style-bg-image-white-text .wp-block-button__link:hover {
    opacity: 0.8;
    transform: scale(1.1);
}

/* 黒テキスト＋矢印アイコン */
.wp-block-button.is-style-black-text-arrow .wp-block-button__link {
	display: inline-block;
	letter-spacing: 0.03em;
    color: #373331;
    position: relative;
	padding: 0;
    padding-right: 40px;
    text-decoration: none;
	background: transparent;
}

.wp-block-button.is-style-black-text-arrow .wp-block-button__link::after {
    content: "";
    width: 30px;
    height: 30px;
    background: url("/theme/images/more.svg") no-repeat center center;
    background-size: cover;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(0, -50%);
    transition: 0.5s;
}

.wp-block-button.is-style-black-text-arrow .wp-block-button__link:hover {
	background: transparent;
	transform: none;
	box-shadow: none;
	color: #ff8063!important;
}

.wp-block-button.is-style-black-text-arrow .wp-block-button__link:hover::after {
	transform: translate(0, -50%) rotate(360deg);
}

/* 比較表：横スクロール（ScrollHint・SP） */
.membership-comparison-scrollable {
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.membership-comparison-scrollable > .wp-block-table.is-style-membership-comparison {
	overflow-x: visible;
	margin-bottom: 0;
}

/* ScrollHint：表示中はテーブル上に黒フィルター（アイコン位置はライブラリの absolute を維持） */
.membership-comparison-scrollable .scroll-hint-icon-wrap.is-active::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(55, 51, 49, 0.3);
	pointer-events: none;
	z-index: 0;
}

.membership-comparison-scrollable .scroll-hint-icon-wrap {
	z-index: 2;
}

.membership-comparison-scrollable .scroll-hint-icon-wrap .scroll-hint-icon {
	position: absolute;
	z-index: 1;
}

.membership-comparison-scrollable .scroll-hint-text {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.6;
}

/* ============================================
   テーブルブロックスタイル（会員比較表）
   ============================================ */

.wp-block-table.is-style-membership-comparison {
	--mct-beige: #f5ede0;
	--mct-left-even: #fff3e0;
	--mct-data-odd: #fafafa;
	--mct-data-even: #eceff1;
	--mct-gray: #808080;
	--mct-orange-fun: #ff8063;
	--mct-orange-lite: #ff8063;
	--mct-orange-standard: #ff7050;
	--mct-border: #ddd;
	--mct-text: #373331;
	margin-bottom: 60px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.wp-block-table.is-style-membership-comparison table {
	width: 100%;
	min-width: 720px;
	border-collapse: collapse;
	border-spacing: 0;
	table-layout: fixed;
	background: #fff;
}

.wp-block-table.is-style-membership-comparison th,
.wp-block-table.is-style-membership-comparison td {
	padding: 16px;
	border: 1px solid var(--mct-border);
	line-height: 1.7;
	vertical-align: middle;
	font-weight: 500;
	font-size: 14px;
	color: var(--mct-text);
	text-align: justify;
	text-justify: inter-character;
}

/* セル揃え：すべて両端揃え（エディタの配置クラスも上書き） */
.wp-block-table.is-style-membership-comparison .has-text-align-left,
.wp-block-table.is-style-membership-comparison [data-align="left"],
.wp-block-table.is-style-membership-comparison .has-text-align-center,
.wp-block-table.is-style-membership-comparison [data-align="center"],
.wp-block-table.is-style-membership-comparison .has-text-align-right,
.wp-block-table.is-style-membership-comparison [data-align="right"] {
	text-align: justify;
	text-justify: inter-character;
}

/* セル縦位置（td / th に直接クラス指定） */
.wp-block-table.is-style-membership-comparison td.mct-align-top,
.wp-block-table.is-style-membership-comparison th.mct-align-top {
	vertical-align: top;
}

/* 行見出しセル（td / th に直接クラス指定・左揃え・左右 padding） */
.wp-block-table.is-style-membership-comparison td.mct-row-label,
.wp-block-table.is-style-membership-comparison th.mct-row-label {
	text-align: left !important;
	text-justify: auto !important;
	padding-left: 16px !important;
	padding-right: 16px !important;
}

/* 見出し行 */
.wp-block-table.is-style-membership-comparison thead {
	border-bottom: none;
}

.wp-block-table.is-style-membership-comparison thead th {
	font-weight: 500;
}

/* ヘッダー（colspan プラン名 + 4プラン列） */
.wp-block-table.is-style-membership-comparison thead th[colspan="2"] {
	background-color: var(--mct-beige);
	color: var(--mct-text);
}

.wp-block-table.is-style-membership-comparison thead:has(th[colspan="2"]) th:nth-child(2) {
	background-color: var(--mct-gray);
	color: #fff;
}

.wp-block-table.is-style-membership-comparison thead:has(th[colspan="2"]) th:nth-child(3) {
	background-color: var(--mct-orange-fun);
	color: #fff;
}

.wp-block-table.is-style-membership-comparison thead:has(th[colspan="2"]) th:nth-child(4) {
	background-color: var(--mct-orange-lite);
	color: #fff;
}

.wp-block-table.is-style-membership-comparison thead:has(th[colspan="2"]) th:nth-child(5) {
	background-color: var(--mct-orange-standard);
	color: #fff;
}

/* 6列構成ヘッダー（空列 + プラン名 が別セルの旧構造） */
.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(1),
.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(2) {
	background-color: var(--mct-beige);
	color: var(--mct-text);
}

.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(1) {
	width: 48px;
	padding: 16px;
}

.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(3) {
	background-color: var(--mct-gray);
	color: #fff;
}

.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(4) {
	background-color: var(--mct-orange-fun);
	color: #fff;
}

.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(5) {
	background-color: var(--mct-orange-lite);
	color: #fff;
}

.wp-block-table.is-style-membership-comparison thead:not(:has(th[colspan="2"])) th:nth-child(6) {
	background-color: var(--mct-orange-standard);
	color: #fff;
}

/* 列幅（セクション列のみ 48px、ラベル列は auto） */
.wp-block-table.is-style-membership-comparison .mct-col-section {
	width: 24px;
	min-width: 24px;
	max-width: 24px;
}

.wp-block-table.is-style-membership-comparison .mct-col-label {
	width: auto;
	min-width: 140px;
}

/*
 * tbody ストライプ（thead 続き）
 * tbody 奇数行：左 #fff3e0 / データ #fafafa
 * tbody 偶数行：左 #f5ede0 / データ #eceff1
 */
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd) > td[colspan="2"],
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd) > td.mct-row-label[colspan="2"],
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd) > td[rowspan]:not(.membership-table-section),
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd) > td[rowspan] + td,
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd) > td.mct-row-label,
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd) > td:first-child:not([rowspan]):not([colspan="2"]) {
	background-color: var(--mct-left-even) !important;
}

.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even) > td[colspan="2"],
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even) > td.mct-row-label[colspan="2"],
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even) > td[rowspan]:not(.membership-table-section),
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even) > td[rowspan] + td,
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even) > td.mct-row-label,
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even) > td:first-child:not([rowspan]):not([colspan="2"]) {
	background-color: var(--mct-beige) !important;
}

/* データ列（6セル行） */
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd):has(> td:nth-child(6)) > td:nth-child(n+3) {
	background-color: var(--mct-data-odd);
}

.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even):has(> td:nth-child(6)) > td:nth-child(n+3) {
	background-color: var(--mct-data-even);
}

/* データ列（5セル行：colspan ラベル or セクション継続行） */
.wp-block-table.is-style-membership-comparison tbody tr:nth-child(odd):has(> td:nth-child(5):last-child):not(:has(> td:nth-child(6))) > td:not(:first-child) {
	background-color: var(--mct-data-odd);
}

.wp-block-table.is-style-membership-comparison tbody tr:nth-child(even):has(> td:nth-child(5):last-child):not(:has(> td:nth-child(6))) > td:not(:first-child) {
	background-color: var(--mct-data-even);
}

/* セクション連結タイトル（rowspan セル） */
.wp-block-table.is-style-membership-comparison td.membership-table-section {
	width: 24px;
	min-width: 24px;
	max-width: 24px;
	padding: 16px 2px;
	font-size: 12px;
	text-align: center;
	vertical-align: middle;
	border-color: var(--mct-border);
}

.wp-block-table.is-style-membership-comparison td.membership-table-section .mct-section-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1em;
}

.wp-block-table.is-style-membership-comparison td.membership-table-section .mct-section-num {
	writing-mode: horizontal-tb;
	text-orientation: mixed;
	line-height: 1;
	letter-spacing: 0;
}

.wp-block-table.is-style-membership-comparison td.membership-table-section .mct-section-label {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	line-height: 1.2;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.wp-block-table.is-style-membership-comparison td.membership-table-section .mct-section-label:has(> span) {
	writing-mode: horizontal-tb;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	line-height: 1.1;
	letter-spacing: 0;
	white-space: normal;
}

.wp-block-table.is-style-membership-comparison td.membership-table-section .mct-section-label:has(> span) > span {
	display: block;
	line-height: 1.1;
}

.wp-block-table.is-style-membership-comparison td.membership-table-section--stay {
	background-color: #cfd8dc !important;
	color: var(--mct-text) !important;
}

.wp-block-table.is-style-membership-comparison td.membership-table-section--hotel {
	background-color: #bcaaa4 !important;
	color: var(--mct-text) !important;
}

/* ============================================
   レスポンシブ対応
   ============================================ */

@media (max-width: 768px) {
	/* コンテンツ幅980px（SP） */
	.wp-block-group.is-style-membership-content-980 {
		max-width: 100%;
	}

	/* プラン一覧グリッド（SP 1列） */
	.wp-block-group.is-style-membership-plans-grid,
	#member.wp-block-group .wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]),
	.wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]) {
		grid-template-columns: 1fr !important;
		gap: 35px;
	}

	/* プランセクション（SP左右余白20px）— content-980 直下のグリッドのみ */
	.wp-block-group.is-style-membership-content-980 > .wp-block-group.is-layout-grid:has(> [class*="is-style-membership-plan-"]),
	.wp-block-group.is-style-membership-plans-grid:has(> [class*="is-style-membership-plan-"]) {
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}

	/* ============================================
	   会員プランカード（レスポンシブ）
	   ============================================ */
	.wp-block-group.is-style-membership-plan-01::before {
		background-image: url("/theme/images/membership/bg_membership_plan01_sp.webp");
	}

	.wp-block-group.is-style-membership-plan-02::before {
		background-image: url("/theme/images/membership/bg_membership_plan02_sp.webp");
	}

	.wp-block-group.is-style-membership-plan-03::before {
		background-image: url("/theme/images/membership/bg_membership_plan03_sp.webp");
	}

	.wp-block-group.is-style-membership-plan-04::before {
		background-image: url("/theme/images/membership/bg_membership_plan04_sp.webp");
	}

	#member.wp-block-group .wp-block-group[class*="is-style-membership-plan-"],
	.wp-block-group[class*="is-style-membership-plan-"] {
		width: 100%;
		max-width: 100%;
		margin-bottom: 35px;
		padding: 40px 20px 30px;
	}

	.wp-block-group.is-style-membership-plan-01::after,
	.wp-block-group.is-style-membership-plan-02::after {
		top: -28px;
		right: -8px;
		width: min(52%, 200px);
	}

	.wp-block-group.is-style-membership-plan-03::after {
		top: -20px;
		right: 0;
		transform: none;
		width: 75px;
		height: 84px;
		aspect-ratio: auto;
	}

	.wp-block-group.is-style-membership-plan-04::after {
		top: -20px;
		right: 0;
		transform: none;
		width: 78px;
		height: 87px;
		aspect-ratio: auto;
	}

	.wp-block-group.is-style-membership-plan-03 > :not(.wp-block-buttons),
	.wp-block-group.is-style-membership-plan-04 > :not(.wp-block-buttons) {
		max-width: 100%;
	}

	.wp-block-group[class*="is-style-membership-plan-"] .wp-block-group.is-layout-flex.is-nowrap {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.wp-block-group[class*="is-style-membership-plan-"] .wp-block-button {
		max-width: 100%;
	}

	.wp-block-button.is-style-solid-orange-white-text .wp-block-button__link,
	.wp-block-button.is-style-solid-gray-white-text .wp-block-button__link {
		width: 192px;
		height: 54px;
		font-size: 14px !important;
	}

	/* ============================================
	   グループブロックスタイル（レスポンシブ）
	   ============================================ */
	.wp-block-group.is-style-card-normal-bg,
	.wp-block-group.is-style-card-premium,
	.wp-block-group.is-style-gradient-beige-white {
		padding: 25px 20px;
		border-radius: 15px;
	}

	/* ============================================
	   ボタンブロックスタイル（レスポンシブ）
	   ============================================ */
	/* 背景画像＋白テキスト */
	.wp-block-button.is-style-bg-image-white-text .wp-block-button__link {
		width: 100%;
		max-width: 100%;
		padding: 15px 30px;
		display: block;
		text-align: center;
	}

	/* 黒テキスト＋矢印アイコン */
	.wp-block-button.is-style-black-text-arrow .wp-block-button__link {
		padding-right: 35px;
		width: 100%;
		display: block;
	}

	.wp-block-button.is-style-black-text-arrow .wp-block-button__link::after {
		width: 25px;
		height: 25px;
		right: 5px;
	}

	/* ============================================
	   テーブルブロックスタイル（レスポンシブ）
	   ============================================ */
	.membership-comparison-scrollable {
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}

	.membership-comparison-scrollable > .wp-block-table.is-style-membership-comparison {
		overflow-x: visible !important;
		width: auto;
		max-width: none;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding: 0 !important;
		box-sizing: border-box;
	}

	#member.wp-block-group .membership-comparison-scrollable > .wp-block-table.is-style-membership-comparison,
	.pg.journal#journal .membership-comparison-scrollable > .wp-block-table.is-style-membership-comparison {
		overflow-x: visible !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding: 0 !important;
	}

	.wp-block-table.is-style-membership-comparison {
		width: 100%;
		max-width: 100%;
		margin-left: -20px;
		margin-right: -20px;
		padding: 0 20px;
		box-sizing: border-box;
	}

	.wp-block-table.is-style-membership-comparison table {
		min-width: 1024px;
	}

	.wp-block-table.is-style-membership-comparison th,
	.wp-block-table.is-style-membership-comparison td {
		padding: 16px;
		font-size: 14px;
		width: 200px;
		min-width: 200px;
		max-width: 200px;
	}

	.wp-block-table.is-style-membership-comparison td.membership-table-section {
		font-size: 12px;
		padding: 16px 2px;
		width: 24px;
		min-width: 24px;
		max-width: 24px;
	}

	/* ラベル列（mct-row-label 以外）— SP で左右 padding なし */
	.wp-block-table.is-style-membership-comparison tbody td[colspan="2"]:not(.mct-row-label):not(.has-text-align-left):not([data-align="left"]),
	.wp-block-table.is-style-membership-comparison tbody td[rowspan] + td:not(.mct-row-label):not(.has-text-align-left):not([data-align="left"]),
	.wp-block-table.is-style-membership-comparison tbody tr > td:first-child:not([rowspan]):not([colspan="2"]):not(.mct-row-label):not(.has-text-align-left):not([data-align="left"]) {
		padding-left: 0;
		padding-right: 0;
	}

	/* 行見出しセル — SP で左右 padding 12px */
	.wp-block-table.is-style-membership-comparison td.mct-row-label,
	.wp-block-table.is-style-membership-comparison th.mct-row-label {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}
}
