/* =====================================================================
 * SWELL装飾クローン  style.css
 * 色や角丸はここで一括調整できます（クライアントのブランドに合わせて変更可）。
 * ===================================================================== */
:root {
	--swldeco-main:        #2d8fdd; /* メインアクセント（SWELLの swl-main 相当） */
	--swldeco-main-thin:   #eef6fd; /* 薄い背景（swl-main-thin 相当） */
	--swldeco-emphasis:    #e8482f; /* 強調カラー（deep-01 相当・赤系） */
	--swldeco-marker:      rgba(45, 143, 221, .30); /* 青マーカー */
	--swldeco-text:        #333333;
	--swldeco-border:      #d8dde2;
	--swldeco-radius:      8px;
}

/* ---------------------------------------------------------------------
 * ② インライン装飾
 * ------------------------------------------------------------------- */
mark.swldeco-marker {
	background: transparent;
	color: inherit;
	font-weight: 700;
}
mark.swldeco-marker.is-blue {
	background: linear-gradient(transparent 55%, var(--swldeco-marker) 55%);
	padding: 0 .1em;
}
.swldeco-emphasis {
	color: var(--swldeco-emphasis);
	font-weight: 700;
}

/* ---------------------------------------------------------------------
 * ① チェックリスト
 * ------------------------------------------------------------------- */
ul.is-style-swldeco-check {
	list-style: none;
	margin: 1.4em 0;
	padding: 1.1em 1.3em 1.1em 1.3em;
	background: var(--swldeco-main-thin);
	border-radius: var(--swldeco-radius);
}
ul.is-style-swldeco-check li {
	position: relative;
	margin: .55em 0;
	padding-left: 1.8em;
	list-style: none;
	line-height: 1.7;
}
ul.is-style-swldeco-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 1.2em;
	height: 1.2em;
	border-radius: 50%;
	background: var(--swldeco-main)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'/%3E%3C/svg%3E")
		center / 70% 70% no-repeat;
}

/* ---------------------------------------------------------------------
 * ① 番号付きリスト（丸数字）
 * ------------------------------------------------------------------- */
ol.is-style-swldeco-num-circle,
ul.is-style-swldeco-num-circle {
	list-style: none;
	counter-reset: swldeco-num;
	margin: 1.4em 0;
	padding-left: 0;
}
ol.is-style-swldeco-num-circle li,
ul.is-style-swldeco-num-circle li {
	counter-increment: swldeco-num;
	position: relative;
	margin: .7em 0;
	padding-left: 2.4em;
	min-height: 1.8em;
	list-style: none;
	line-height: 1.7;
}
ol.is-style-swldeco-num-circle li::before,
ul.is-style-swldeco-num-circle li::before {
	content: counter(swldeco-num);
	position: absolute;
	left: 0;
	top: .05em;
	width: 1.7em;
	height: 1.7em;
	line-height: 1.7em;
	text-align: center;
	background: var(--swldeco-main);
	color: #fff;
	border-radius: 50%;
	font-size: .85em;
	font-weight: 700;
}

/* ---------------------------------------------------------------------
 * ① テーブル（SWELL風：中央寄せ・ヘッダー色）
 * ------------------------------------------------------------------- */
.wp-block-table.is-style-swldeco-table table {
	border-collapse: collapse;
	width: 100%;
}
.wp-block-table.is-style-swldeco-table th,
.wp-block-table.is-style-swldeco-table td {
	border: 1px solid var(--swldeco-border);
	padding: .65em .8em;
	text-align: center;
	vertical-align: middle;
}
.wp-block-table.is-style-swldeco-table th {
	background: var(--swldeco-main-thin);
	color: var(--swldeco-text);
	font-weight: 700;
}

/* ---------------------------------------------------------------------
 * ③ キャプションボックス
 * ------------------------------------------------------------------- */
.swldeco-capbox {
	position: relative;
	margin: 1.8em 0;
	padding: 1.5em 1.2em 1.2em;
	border: 2px solid var(--swldeco-main);
	border-radius: var(--swldeco-radius);
}
.swldeco-capbox__label {
	position: absolute;
	top: 0;
	left: 1em;
	transform: translateY(-50%);
	display: inline-block;
	padding: .15em .7em;
	background: var(--swldeco-main);
	color: #fff;
	border-radius: 4px;
	font-size: .82em;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.4;
}
.swldeco-capbox__body > :first-child { margin-top: 0; }
.swldeco-capbox__body > :last-child  { margin-bottom: 0; }

/* ラベル帯バリエーション */
.swldeco-capbox.is-style-inner {
	padding-top: 0;
	overflow: hidden;
}
.swldeco-capbox.is-style-inner .swldeco-capbox__label {
	position: static;
	transform: none;
	display: block;
	margin: -2px -1.2em 1em;
	padding: .5em 1.2em;
	background: var(--swldeco-main);
	color: #fff;
	border-radius: 0;
}

/* ---------------------------------------------------------------------
 * ③ 吹き出し
 * ------------------------------------------------------------------- */
.swldeco-balloon {
	display: flex;
	align-items: flex-start;
	gap: .9em;
	margin: 1.6em 0;
}
.swldeco-balloon.is-right { flex-direction: row-reverse; }

.swldeco-balloon__icon {
	flex: 0 0 auto;
	width: 64px;
	text-align: center;
}
.swldeco-balloon__icon img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid var(--swldeco-border);
	background: #fff;
}
.swldeco-balloon__icon-ph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: 1px dashed var(--swldeco-border);
	color: #aaa;
	font-size: .8em;
}
.swldeco-balloon__name {
	display: block;
	margin-top: .2em;
	font-size: .68em;
	color: #888;
	line-height: 1.3;
}

.swldeco-balloon__text {
	position: relative;
	max-width: 80%;
	padding: .85em 1.1em;
	background: var(--swldeco-main-thin);
	border: 1px solid var(--swldeco-border);
	border-radius: 12px;
}
.swldeco-balloon__text > :first-child { margin-top: 0; }
.swldeco-balloon__text > :last-child  { margin-bottom: 0; }

/* 吹き出しの三角（左向き／右向き） */
.swldeco-balloon__text::before,
.swldeco-balloon__text::after {
	content: "";
	position: absolute;
	top: 20px;
	border: 8px solid transparent;
}
.swldeco-balloon.is-left .swldeco-balloon__text::before {
	left: -16px;
	border-right-color: var(--swldeco-border);
}
.swldeco-balloon.is-left .swldeco-balloon__text::after {
	left: -14px;
	border-right-color: var(--swldeco-main-thin);
}
.swldeco-balloon.is-right .swldeco-balloon__text::before {
	right: -16px;
	border-left-color: var(--swldeco-border);
}
.swldeco-balloon.is-right .swldeco-balloon__text::after {
	right: -14px;
	border-left-color: var(--swldeco-main-thin);
}

/* ---------------------------------------------------------------------
 * ③ アコーディオン
 * ------------------------------------------------------------------- */
.swldeco-accordion {
	margin: 1.4em 0;
	border: 1px solid var(--swldeco-border);
	border-radius: var(--swldeco-radius);
	overflow: hidden;
}
.swldeco-accordion__title-wrap,
.swldeco-accordion.is-editing .swldeco-accordion__title {
	position: relative;
	display: block;
	padding: .9em 2.6em .9em 1em;
	background: var(--swldeco-main-thin);
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.swldeco-accordion__title-wrap::-webkit-details-marker { display: none; }
.swldeco-accordion__title-wrap::after,
.swldeco-accordion.is-editing .swldeco-accordion__title::after {
	content: "";
	position: absolute;
	right: 1.1em;
	top: 50%;
	width: 10px;
	height: 10px;
	margin-top: -7px;
	border-right: 2px solid var(--swldeco-main);
	border-bottom: 2px solid var(--swldeco-main);
	transform: rotate(45deg);
	transition: transform .2s;
}
.swldeco-accordion[open] .swldeco-accordion__title-wrap::after {
	transform: rotate(225deg);
	margin-top: -2px;
}
.swldeco-accordion__body {
	padding: 1em;
}
.swldeco-accordion__body > :first-child { margin-top: 0; }
.swldeco-accordion__body > :last-child  { margin-bottom: 0; }

/* ---------------------------------------------------------------------
 * ③ シャイニーボタン
 * ------------------------------------------------------------------- */
.swldeco-button { margin: 1.6em 0; }
.swldeco-button.has-align-center { text-align: center; }
.swldeco-button.has-align-left   { text-align: left; }
.swldeco-button.has-align-right  { text-align: right; }

.swldeco-button__link {
	position: relative;
	display: inline-block;
	overflow: hidden;
	padding: .9em 2.6em;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--swldeco-main), #1f6fb0);
	color: #fff;
	font-weight: 700;
	text-decoration: none !important;
	box-shadow: 0 4px 0 rgba(0, 0, 0, .15);
	transition: transform .15s, box-shadow .15s;
}
.swldeco-button__link:hover {
	transform: translateY(2px);
	box-shadow: 0 2px 0 rgba(0, 0, 0, .15);
}
.swldeco-button__link::before {
	content: "";
	position: absolute;
	top: 0;
	left: -75%;
	width: 50%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .55), transparent);
	transform: skewX(-20deg);
	animation: swldeco-shine 3.2s infinite;
}
@keyframes swldeco-shine {
	0%        { left: -75%; }
	55%, 100% { left: 130%; }
}
@media (prefers-reduced-motion: reduce) {
	.swldeco-button__link::before { animation: none; }
}

/* ---------------------------------------------------------------------
 * 脚注（mininote）
 * ------------------------------------------------------------------- */
small.swldeco-mininote,
.swldeco-mininote {
	display: block;
	margin-top: .3em;
	color: #888;
	font-size: .8em;
	line-height: 1.5;
}

/* ---------------------------------------------------------------------
 * SP（スマホ）視認性調整
 * ------------------------------------------------------------------- */
@media screen and (max-width: 768px) {
	/* テーブル：SWELL風 / ストライプ / 比較表
	 *   - 日本語が自然に改行できるよう word-break
	 *   - はみ出すケースは横スクロールで救済
	 *   - セル余白とフォントを縮小 */
	.wp-block-table.is-style-swldeco-table,
	.wp-block-table.is-style-swldeco-table-stripe,
	.wp-block-table.is-style-swldeco-table-compare {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.wp-block-table.is-style-swldeco-table th,
	.wp-block-table.is-style-swldeco-table td,
	.wp-block-table.is-style-swldeco-table-stripe th,
	.wp-block-table.is-style-swldeco-table-stripe td,
	.wp-block-table.is-style-swldeco-table-compare th,
	.wp-block-table.is-style-swldeco-table-compare td {
		padding: .55em .6em;
		font-size: .92em;
		line-height: 1.55;
		word-break: break-word;
	}

	/* 見出し：上下マージンを少し詰めて、本文との距離を整える */
	.is-style-swldeco-h-border    { padding: .15em .1em .15em .6em; margin: 1.8em 0 .9em; }
	.is-style-swldeco-h-underline { margin: 1.8em 0 .9em; }
	.is-style-swldeco-h-fill      { padding: .4em .65em; margin: 1.8em 0 .9em; }
	.is-style-swldeco-h-dotted    { margin: 1.8em 0 .9em; }
	.is-style-swldeco-h-stitch    { padding: .4em .65em; margin: 1.8em 0 .9em; }

	/* リスト：左右パディングを縮める */
	ul.is-style-swldeco-check {
		padding: .9em 1em .9em 1.1em;
	}
	ul.is-style-swldeco-check li {
		font-size: .96em;
		padding-left: 1.6em;
	}
	ol.is-style-swldeco-num-circle li,
	ul.is-style-swldeco-num-circle li {
		font-size: .96em;
		padding-left: 2.1em;
	}

	/* キャプションボックス：余白を縮める */
	.swldeco-capbox { padding: 1.3em 1em 1em; margin: 1.4em 0; }
	.swldeco-capbox.is-style-inner { padding-top: 0; }
	.swldeco-capbox.is-style-inner .swldeco-capbox__label {
		margin: 0 -1em 1em;
		padding: .5em 1em;
	}

	/* 吹き出し：アイコンを小さくして本文を広く */
	.swldeco-balloon { gap: .55em; }
	.swldeco-balloon__icon { width: 52px; }
	.swldeco-balloon__icon img,
	.swldeco-balloon__icon-ph { width: 52px; height: 52px; }
	.swldeco-balloon__text {
		flex: 1 1 auto;
		max-width: none;
		padding: .7em .9em;
		font-size: .95em;
	}
	.swldeco-balloon__text::before,
	.swldeco-balloon__text::after { top: 14px; }

	/* アコーディオン：余白縮小 */
	.swldeco-accordion__title-wrap,
	.swldeco-accordion.is-editing .swldeco-accordion__title {
		padding: .8em 2.2em .8em .9em;
		font-size: .95em;
	}
	.swldeco-accordion__body { padding: .9em; }

	/* ボタン：タップしやすく、はみ出さないように */
	.swldeco-button__link {
		display: inline-block;
		padding: .85em 1.8em;
		min-height: 44px;
		max-width: 100%;
		box-sizing: border-box;
		line-height: 1.4;
	}

	/* タブ：等分配置・コンパクト */
	.swldeco-tabs__nav { gap: 2px; }
	.swldeco-tabs__btn {
		flex: 1 1 0;
		min-width: 0;
		padding: .55em .35em;
		font-size: .88em;
		line-height: 1.35;
		border-radius: 6px 6px 0 0;
	}
	.swldeco-tabs__panels {
		padding: 1em .9em;
		border-radius: 0 6px 6px 6px;
	}
}

/* =====================================================================
 * 追加分（v1.1.0）
 * ===================================================================== */

/* --- 見出しスタイル ------------------------------------------------ */
/* サイズは見出しレベル（h2/h3…）に依存せず統一 */
.is-style-swldeco-h-border,
.is-style-swldeco-h-underline,
.is-style-swldeco-h-fill,
.is-style-swldeco-h-dotted,
.is-style-swldeco-h-stitch {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .03em;
}
@media screen and (max-width: 768px) {
	.is-style-swldeco-h-border,
	.is-style-swldeco-h-underline,
	.is-style-swldeco-h-fill,
	.is-style-swldeco-h-dotted,
	.is-style-swldeco-h-stitch {
		font-size: 2.3rem;
		line-height: 1.5;
	}
}

.is-style-swldeco-h-border {
	padding: .2em .1em .2em .7em;
	border-left: 5px solid var(--swldeco-main);
	line-height: 1.5;
}
.is-style-swldeco-h-underline {
	position: relative;
	padding-bottom: .35em;
	border-bottom: 1px solid var(--swldeco-border);
}
.is-style-swldeco-h-underline::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 60px;
	height: 3px;
	background: var(--swldeco-main);
}
.is-style-swldeco-h-fill {
	padding: .45em .8em;
	background: var(--swldeco-main);
	color: #fff;
	border-radius: 5px;
}
.is-style-swldeco-h-dotted {
	padding-bottom: .3em;
	border-bottom: 3px dotted var(--swldeco-main);
}
.is-style-swldeco-h-stitch {
	padding: .45em .8em;
	border: 2px dashed var(--swldeco-main);
	border-radius: 6px;
}

/* --- テーブル：ストライプ ------------------------------------------ */
.wp-block-table.is-style-swldeco-table-stripe table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-swldeco-table-stripe th,
.wp-block-table.is-style-swldeco-table-stripe td {
	border: 1px solid var(--swldeco-border);
	padding: .65em .8em;
}
.wp-block-table.is-style-swldeco-table-stripe th {
	background: var(--swldeco-main);
	color: #fff;
}
.wp-block-table.is-style-swldeco-table-stripe tbody tr:nth-child(even) {
	background: var(--swldeco-main-thin);
}

/* --- テーブル：比較表（左列見出し） -------------------------------- */
.wp-block-table.is-style-swldeco-table-compare table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-swldeco-table-compare th,
.wp-block-table.is-style-swldeco-table-compare td {
	border: 1px solid var(--swldeco-border);
	padding: .65em .8em;
	text-align: center;
	vertical-align: middle;
}
.wp-block-table.is-style-swldeco-table-compare thead th { background: var(--swldeco-main); color: #fff; }
.wp-block-table.is-style-swldeco-table-compare tbody th { background: var(--swldeco-main-thin); }

/* --- キャプションボックス：色／形バリエーション -------------------- */
.swldeco-capbox.is-style-red   { --swldeco-main: #e8482f; --swldeco-main-thin: #fdeeec; }
.swldeco-capbox.is-style-green { --swldeco-main: #3aa56a; --swldeco-main-thin: #eef8f1; }
.swldeco-capbox.is-style-gray  { --swldeco-main: #7a8794; --swldeco-main-thin: #f1f3f5; }

.swldeco-capbox.is-style-simple {
	border: none;
	padding: 1.2em;
	background: var(--swldeco-main-thin);
}
.swldeco-capbox.is-style-simple .swldeco-capbox__label {
	position: static;
	transform: none;
	display: block;
	margin-bottom: .5em;
	padding: 0;
	background: transparent;
}

/* --- シャイニーボタン：文字サイズ ---------------------------------- */
.swldeco-button__link.has-fontsize-sm { font-size: .85em; }
.swldeco-button__link.has-fontsize-md { font-size: 1em; }
.swldeco-button__link.has-fontsize-lg { font-size: 1.15em; }
.swldeco-button__link.has-fontsize-xl { font-size: 1.3em; padding: 1em 3em; }

/* --- タブ ----------------------------------------------------------- */
.swldeco-tabs { margin: 1.6em 0; }
.swldeco-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: -1px;
}
.swldeco-tabs__btn {
	padding: .6em 1.3em;
	border: 1px solid var(--swldeco-border);
	border-bottom: none;
	border-radius: 8px 8px 0 0;
	background: #f3f6f8;
	color: var(--swldeco-text);
	font-weight: 700;
	cursor: pointer;
	line-height: 1.4;
}
.swldeco-tabs__btn.is-active {
	background: var(--swldeco-main);
	color: #fff;
}
.swldeco-tabs__panels {
	border: 1px solid var(--swldeco-border);
	border-radius: 0 8px 8px 8px;
	padding: 1.2em;
}
.swldeco-tab__panel { display: none; }
.swldeco-tab__panel.is-active { display: block; }
.swldeco-tab__panel > :first-child { margin-top: 0; }
.swldeco-tab__panel > :last-child  { margin-bottom: 0; }

/* =====================================================================
 * テーマCSSとの衝突対策（!important オーバーライド）  v1.3.0
 * テーマ側で h2 / table / li などに当てられた既存CSSを上書きするためのレイヤー。
 * 視覚プロパティ（色・余白・枠線・配置・フォント関連）のみ !important 化し、
 * position/transform/transition などの構造的プロパティは触らない。
 * ===================================================================== */

/* ---- 見出し（共通） ---------------------------------------------- */
.is-style-swldeco-h-border,
.is-style-swldeco-h-underline,
.is-style-swldeco-h-fill,
.is-style-swldeco-h-dotted,
.is-style-swldeco-h-stitch {
	font-size: 2rem !important;
	font-weight: 700 !important;
	line-height: 1.45 !important;
	letter-spacing: .03em !important;
}

/* ---- 装飾スタイル未適用の見出し（素のh2/h3）にも同じサイズを適用 ----
   ブロックエディタで作られた h2/h3（.wp-block-heading）か、よくある記事本文
   ラッパー（.entry-content など）配下の h2/h3 を対象に、サイズだけ揃える。
   見た目の装飾は加えない（スタイルを選んだ時だけ装飾が付く）。 */
h2.wp-block-heading,
h3.wp-block-heading,
.entry-content h2,
.entry-content h3,
.post-content h2,
.post-content h3,
.post_content h2,
.post_content h3,
.wp-block-post-content h2,
.wp-block-post-content h3 {
	font-size: 2rem !important;
	font-weight: 700 !important;
	line-height: 1.45 !important;
	letter-spacing: .03em !important;
}

/* ---- 見出し（個別） ---------------------------------------------- */
.is-style-swldeco-h-border {
	margin: 2em 0 1em !important;
	padding: .2em .1em .2em .7em !important;
	border-left: 5px solid var(--swldeco-main) !important;
	border-top: none !important;
	border-right: none !important;
	border-bottom: none !important;
	background: transparent !important;
}
.is-style-swldeco-h-underline {
	margin: 2em 0 1em !important;
	padding: 0 0 .35em !important;
	border: none !important;
	border-bottom: 1px solid var(--swldeco-border) !important;
	background: transparent !important;
}
.is-style-swldeco-h-fill {
	margin: 2em 0 1em !important;
	padding: .45em .8em !important;
	background: var(--swldeco-main) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 5px !important;
}
.is-style-swldeco-h-dotted {
	margin: 2em 0 1em !important;
	padding: 0 0 .3em !important;
	border: none !important;
	border-bottom: 3px dotted var(--swldeco-main) !important;
	background: transparent !important;
}
.is-style-swldeco-h-stitch {
	margin: 2em 0 1em !important;
	padding: .45em .8em !important;
	border: 2px dashed var(--swldeco-main) !important;
	border-radius: 6px !important;
	background: transparent !important;
}

/* ---- テーブル ---------------------------------------------------- */
.wp-block-table.is-style-swldeco-table th,
.wp-block-table.is-style-swldeco-table td,
.wp-block-table.is-style-swldeco-table-stripe th,
.wp-block-table.is-style-swldeco-table-stripe td,
.wp-block-table.is-style-swldeco-table-compare th,
.wp-block-table.is-style-swldeco-table-compare td {
	border: 1px solid var(--swldeco-border) !important;
	padding: .65em .8em !important;
	text-align: center !important;
	vertical-align: middle !important;
}
.wp-block-table.is-style-swldeco-table th {
	background: var(--swldeco-main-thin) !important;
	color: var(--swldeco-text) !important;
	font-weight: 700 !important;
}
.wp-block-table.is-style-swldeco-table-stripe th {
	background: var(--swldeco-main) !important;
	color: #fff !important;
	font-weight: 700 !important;
}
.wp-block-table.is-style-swldeco-table-stripe tbody tr:nth-child(even) td,
.wp-block-table.is-style-swldeco-table-stripe tbody tr:nth-child(even) th {
	background: var(--swldeco-main-thin) !important;
}
.wp-block-table.is-style-swldeco-table-compare thead th {
	background: var(--swldeco-main) !important;
	color: #fff !important;
	font-weight: 700 !important;
}
.wp-block-table.is-style-swldeco-table-compare tbody th {
	background: var(--swldeco-main-thin) !important;
	font-weight: 700 !important;
}

/* ---- リスト ------------------------------------------------------- */
ul.is-style-swldeco-check {
	list-style: none !important;
	padding: 1.1em 1.3em !important;
	background: var(--swldeco-main-thin) !important;
	border-radius: var(--swldeco-radius) !important;
}
ul.is-style-swldeco-check li {
	list-style: none !important;
	padding-left: 1.8em !important;
	line-height: 1.7 !important;
}
ul.is-style-swldeco-check li::before {
	background: var(--swldeco-main)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'/%3E%3C/svg%3E")
		center / 70% 70% no-repeat !important;
	border-radius: 50% !important;
}
ol.is-style-swldeco-num-circle,
ul.is-style-swldeco-num-circle {
	list-style: none !important;
	padding-left: 0 !important;
}
ol.is-style-swldeco-num-circle li,
ul.is-style-swldeco-num-circle li {
	list-style: none !important;
	padding-left: 2.4em !important;
	line-height: 1.7 !important;
}
ol.is-style-swldeco-num-circle li::before,
ul.is-style-swldeco-num-circle li::before {
	background: var(--swldeco-main) !important;
	color: #fff !important;
	border-radius: 50% !important;
	font-weight: 700 !important;
}

/* ---- キャプションボックス ---------------------------------------- */
.swldeco-capbox {
	border: 2px solid var(--swldeco-main) !important;
	border-radius: var(--swldeco-radius) !important;
	padding: 1.5em 1.2em 1.2em !important;
	background: transparent !important;
}
.swldeco-capbox__label {
	background: var(--swldeco-main) !important;
	color: #fff !important;
	padding: .15em .7em !important;
	border-radius: 4px !important;
	font-weight: 700 !important;
}
.swldeco-capbox.is-style-inner { border: none !important; padding: 0 !important; }
.swldeco-capbox.is-style-inner .swldeco-capbox__label {
	background: var(--swldeco-main) !important;
	color: #fff !important;
	border-radius: 0 !important;
}
.swldeco-capbox.is-style-simple {
	border: none !important;
	background: var(--swldeco-main-thin) !important;
}
.swldeco-capbox.is-style-simple .swldeco-capbox__label {
	background: transparent !important;
	color: var(--swldeco-main) !important;
	padding: 0 !important;
}

/* ---- 吹き出し ---------------------------------------------------- */
.swldeco-balloon__icon img {
	border-radius: 50% !important;
	border: 1px solid var(--swldeco-border) !important;
}
.swldeco-balloon__text {
	background: var(--swldeco-main-thin) !important;
	border: 1px solid var(--swldeco-border) !important;
	padding: .85em 1.1em !important;
	border-radius: 12px !important;
}

/* ---- アコーディオン --------------------------------------------- */
.swldeco-accordion {
	border: 1px solid var(--swldeco-border) !important;
	border-radius: var(--swldeco-radius) !important;
}
.swldeco-accordion__title-wrap {
	background: var(--swldeco-main-thin) !important;
	padding: .9em 2.6em .9em 1em !important;
	font-weight: 700 !important;
	list-style: none !important;
}
.swldeco-accordion__body {
	padding: 1em !important;
	background: transparent !important;
}

/* ---- シャイニーボタン -------------------------------------------- */
/* 文字色は「ユーザーが指定しない時だけ」白を !important で当てる。
   ユーザーがカラーピッカーで指定すると inline style="color:..." が出るので、
   :not([style*="color"]) でこのルールを外し、インラインの色が活きるようにする。 */
.swldeco-button__link {
	background: linear-gradient(135deg, var(--swldeco-main), #1f6fb0) !important;
	padding: .9em 2.6em !important;
	border: none !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	box-shadow: 0 4px 0 rgba(0, 0, 0, .15) !important;
}
.swldeco-button__link:not([style*="color"]) { color: #fff !important; }
.swldeco-button__link.has-fontsize-sm { font-size: .85em !important; }
.swldeco-button__link.has-fontsize-md { font-size: 1em !important; }
.swldeco-button__link.has-fontsize-lg { font-size: 1.15em !important; }
.swldeco-button__link.has-fontsize-xl { font-size: 1.3em !important; padding: 1em 3em !important; }

/* ---- タブ -------------------------------------------------------- */
.swldeco-tabs__nav { display: flex !important; }
.swldeco-tabs__btn {
	border: 1px solid var(--swldeco-border) !important;
	border-bottom: none !important;
	background: #f3f6f8 !important;
	color: var(--swldeco-text) !important;
	padding: .6em 1.3em !important;
	font-weight: 700 !important;
	border-radius: 8px 8px 0 0 !important;
}
.swldeco-tabs__btn.is-active {
	background: var(--swldeco-main) !important;
	color: #fff !important;
}
.swldeco-tabs__panels {
	border: 1px solid var(--swldeco-border) !important;
	border-radius: 0 8px 8px 8px !important;
	padding: 1.2em !important;
	background: transparent !important;
}
.swldeco-tab__panel { display: none !important; }
.swldeco-tab__panel.is-active { display: block !important; }

/* ---- インライン装飾 --------------------------------------------- */
mark.swldeco-marker.is-blue {
	background: linear-gradient(transparent 55%, var(--swldeco-marker) 55%) !important;
	color: inherit !important;
}
.swldeco-emphasis {
	color: var(--swldeco-emphasis) !important;
	font-weight: 700 !important;
}

/* ---- SP（768px以下）：!important 版 ------------------------------ */
@media screen and (max-width: 768px) {
	/* 見出し */
	.is-style-swldeco-h-border,
	.is-style-swldeco-h-underline,
	.is-style-swldeco-h-fill,
	.is-style-swldeco-h-dotted,
	.is-style-swldeco-h-stitch {
		font-size: 2.3rem !important;
		line-height: 1.5 !important;
		margin: 1.8em 0 .9em !important;
	}
	.is-style-swldeco-h-border { padding: .2em .1em .2em .7em !important; }
	.is-style-swldeco-h-fill,
	.is-style-swldeco-h-stitch { padding: .5em .75em !important; }

	/* 装飾スタイル未適用の見出し（素のh2/h3）も SP 時に拡大 */
	h2.wp-block-heading,
	h3.wp-block-heading,
	.entry-content h2,
	.entry-content h3,
	.post-content h2,
	.post-content h3,
	.post_content h2,
	.post_content h3,
	.wp-block-post-content h2,
	.wp-block-post-content h3 {
		font-size: 2.3rem !important;
		line-height: 1.5 !important;
	}

	/* テーブル：SPでも縮小しない（本文サイズに揃える） */
	.wp-block-table.is-style-swldeco-table th,
	.wp-block-table.is-style-swldeco-table td,
	.wp-block-table.is-style-swldeco-table-stripe th,
	.wp-block-table.is-style-swldeco-table-stripe td,
	.wp-block-table.is-style-swldeco-table-compare th,
	.wp-block-table.is-style-swldeco-table-compare td {
		padding: .8em .8em !important;
		font-size: 1.05em !important;
		line-height: 1.65 !important;
		word-break: break-word !important;
	}

	/* リスト */
	ul.is-style-swldeco-check li,
	ol.is-style-swldeco-num-circle li,
	ul.is-style-swldeco-num-circle li {
		font-size: 1.05em !important;
		line-height: 1.75 !important;
	}

	/* キャプションボックス */
	.swldeco-capbox { padding: 1.6em 1.1em 1.2em !important; }
	.swldeco-capbox__body { font-size: 1.05em !important; line-height: 1.7 !important; }

	/* 吹き出し */
	.swldeco-balloon__icon img,
	.swldeco-balloon__icon-ph { width: 60px !important; height: 60px !important; }
	.swldeco-balloon__text {
		padding: .9em 1.1em !important;
		font-size: 1.05em !important;
		line-height: 1.7 !important;
	}

	/* アコーディオン */
	.swldeco-accordion__title-wrap {
		padding: 1em 2.6em 1em 1em !important;
		font-size: 1.1em !important;
	}
	.swldeco-accordion__body {
		padding: 1.1em !important;
		font-size: 1.05em !important;
	}

	/* ボタン */
	.swldeco-button__link {
		padding: 1em 2.2em !important;
		min-height: 50px !important;
	}

	/* タブ */
	.swldeco-tabs__btn {
		padding: .75em .45em !important;
		font-size: 1em !important;
		border-radius: 6px 6px 0 0 !important;
	}
	.swldeco-tabs__panels {
		padding: 1.2em 1em !important;
		font-size: 1.05em !important;
		border-radius: 0 6px 6px 6px !important;
	}
}
