/* 配色由 CSS 变量驱动：预设给默认值，Elementor 控件填写后覆盖同名变量 */
.shen-callout {
	--shen-callout-accent-size: 4px;
	position: relative;
	padding: 22px 26px;
	border-radius: 3px;
	overflow: hidden;
}

/* ---- 预设配色 ---- */
.shen-callout.is-info {
	--shen-callout-preset-accent: #1d4ed8;
	--shen-callout-preset-bg: #eef2f9;
	--shen-callout-preset-title: #1a3a7a;
}
.shen-callout.is-note {
	--shen-callout-preset-accent: #6b7688;
	--shen-callout-preset-bg: #f4f5f7;
	--shen-callout-preset-title: #2b3348;
}
.shen-callout.is-success {
	--shen-callout-preset-accent: #1f9d63;
	--shen-callout-preset-bg: #edf7f1;
	--shen-callout-preset-title: #145c3c;
}
.shen-callout.is-warning {
	--shen-callout-preset-accent: #d98324;
	--shen-callout-preset-bg: #fdf5eb;
	--shen-callout-preset-title: #7a4a12;
}
.shen-callout.is-danger {
	--shen-callout-preset-accent: #d94a5a;
	--shen-callout-preset-bg: #fdeff1;
	--shen-callout-preset-title: #7d2530;
}

/* 自定义背景优先，未填写时回落到预设底色 */
.shen-callout {
	background-color: var(--shen-callout-bg, var(--shen-callout-preset-bg));
}

/* ---- 强调条：伪元素实现，不占用 border 控件 ---- */
.shen-callout::before {
	content: "";
	position: absolute;
	background-color: var(--shen-callout-accent, var(--shen-callout-preset-accent));
}
.shen-callout.accent-left::before {
	top: 0;
	bottom: 0;
	left: 0;
	width: var(--shen-callout-accent-size);
}
.shen-callout.accent-right::before {
	top: 0;
	bottom: 0;
	right: 0;
	width: var(--shen-callout-accent-size);
}
.shen-callout.accent-top::before {
	top: 0;
	left: 0;
	right: 0;
	height: var(--shen-callout-accent-size);
}
.shen-callout.accent-none::before { content: none; }

.shen-callout__head {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 8px;
}

.shen-callout__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: var(--shen-callout-accent, var(--shen-callout-preset-accent));
	font-size: 17px;
	line-height: 1;
}

/* 图标字体（Font Awesome 等）：去掉可能的继承行高与基线偏移 */
.shen-callout__icon i {
	display: block;
	line-height: 1;
	font-style: normal;
}

/* 内置 SVG：描边风格，尺寸跟随图标字号 */
.shen-callout__svg {
	display: block;
	width: 1em;
	height: 1em;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Elementor 的字体图标内联 SVG（e-font-icon-svg）与上传的 SVG：
   这类图形靠 fill 着色，需与内置描边图标区分处理。 */
.shen-callout__icon > svg:not(.shen-callout__svg) {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
	stroke: none;
}

/* 标题：清零默认边距。提示框可能位于文章正文内，
   正文的 h2/h3 规则会带来较大 margin，故用组合选择器提升优先级。 */
.shen-callout .shen-callout__title,
.shen-article-content .shen-callout .shen-callout__title {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--shen-callout-preset-title);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.5;
}

.shen-callout__desc {
	color: #3f4859;
	font-size: 14px;
	line-height: 1.9;
}
/* 同样提升优先级，避免被文章正文的段落边距影响 */
.shen-callout .shen-callout__desc > :first-child { margin-top: 0; }
.shen-callout .shen-callout__desc > :last-child { margin-bottom: 0; }
.shen-callout .shen-callout__desc p {
	margin: 0 0 8px;
	text-align: left;
}
.shen-callout__desc a {
	color: var(--shen-callout-accent, var(--shen-callout-preset-accent));
	text-decoration: underline;
	text-underline-offset: 2px;
}
.shen-callout__desc :is(ul, ol) {
	margin: 0 0 8px;
	padding-left: 1.5em;
}
.shen-callout__desc li { margin-bottom: 4px; }
.shen-callout__desc :is(strong, b) { font-weight: 600; }
.shen-callout__desc code {
	padding: 2px 6px;
	border-radius: 3px;
	background: rgba(0, 0, 0, .05);
	font-size: .92em;
}
.shen-callout__desc img { max-width: 100%; height: auto; }

/* 手机端标题较长时图标顶部对齐 */
@media (max-width: 767px) {
	.shen-callout__head { align-items: flex-start; }
	.shen-callout__icon { margin-top: 2px; }
}
