/**
 * Qing 溢出图片轮播样式。
 *
 * 结构：.qing-oc
 *   > .swiper.qing-oc__swiper（overflow:visible，不裁剪）
 *       > .swiper-wrapper > .swiper-slide.qing-oc__slide > .qing-oc__img > img
 *   > .qing-oc__nav（底部居中箭头）
 *
 * 核心：Swiper 按「显示数量」（slidesPerView 数值，支持小数）分屏排布，
 * 幻灯片宽度由 Swiper 自动计算，不再依赖固定宽度。
 * PC 端容器 overflow:visible（不裁剪）保留溢出观感；
 * 移动端强制 overflow:hidden，防止溢出撑破视口产生整页横向滚动。
 */

.qing-oc {
	position: relative;
	width: 100%;
	/* 关键：作为 flex 子项可收缩到容器宽度，切断 Swiper「越量越宽」的指数级放大循环
	   （否则 slide 会被算成千万像素、图片被拉成一条缝导致什么都看不到）。 */
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	/* 小部件本身保持超出可见（保留右侧 breakout 溢出观感）；
	   超出视口的部分由页面级 overflow-x 裁剪（见文件末尾 body 规则），不产生整页横向滚动条。 */
}

/* 关键收敛：Elementor 小部件容器本身也需可收缩，否则 flex 下 min-width:auto 会被内容
   （被 Swiper 撑爆的 wrapper）撑开，形成放大循环。不加 overflow 裁剪以保留 breakout 观感。 */
.elementor-widget-qing-overflow-carousel {
	min-width: 0;
	max-width: 100%;
}

/* 关键：容器不做裁剪。默认关闭循环时初始左对齐、仅右侧溢出，切换后左侧划出的
   幻灯片才突破左边界溢出显示（若开启循环，左侧克隆会使初始左侧也溢出）。
   注意：溢出若超过视口边缘产生整页横向滚动，请在外层 Section 或页面 body
   设置 overflow-x: clip / hidden（属页面级布局，不宜写死在小部件内）。 */
.qing-oc__swiper {
	width: 100%;
	/* 硬上限：用 100%（相对已被 max-width:100% 限制的父级）而非 100vw。
	   100vw 含竖向滚动条宽度，手机端会比可视区略宽而右侧溢出。 */
	min-width: 0;
	max-width: 100%;
	overflow: visible;
}

/* 幻灯片宽度由 Swiper 按「显示数量」自动计算（内联 width），此处不设固定宽度。 */
.qing-oc__slide {
	height: auto;
	box-sizing: border-box;
}

.qing-oc__img {
	display: block;
	width: 100%;
	height: 260px;
	border-radius: 6px;
	overflow: hidden;
	background: #f2f4f7;
}

.qing-oc__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* -------- 底部居中箭头导航 -------- */
.qing-oc__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 24px;
}

/* 描边圆形箭头（作用域限定在 .qing-oc 内）。 */
.qing-oc .qing-carousel__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid #d0d5dd;
	color: #9aa4b2;
	background: transparent;
	cursor: pointer;
	transition: color 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.qing-oc .qing-carousel__arrow svg {
	width: 42%;
	height: 42%;
	display: block;
}

.qing-oc .qing-carousel__arrow:hover {
	color: #2f6bd6;
	border-color: #2f6bd6;
}

.qing-oc .qing-carousel__arrow.swiper-button-disabled {
	opacity: 0.45;
	cursor: default;
	pointer-events: none;
}

/* 移动端：强制裁剪溢出，防止幻灯片超出视口导致整页横向滚动、页面错位。 */
@media (max-width: 767px) {
	.qing-oc__swiper {
		overflow: hidden;
	}

	.qing-oc__img {
		height: 200px;
	}
}

/* ============ 页面级横向裁剪 ============
 * 本样式表仅在「含溢出图片轮播的页面」加载（小部件 get_style_depends 按需入队），
 * 因此在这些页面把超出视口右侧的横向溢出裁掉，消除整页底部横向滚动条，
 * 同时保留小部件在视口范围内的右侧超出（breakout）观感。
 *
 * 用 overflow-x: clip：只裁横向、不创建滚动容器，不会像 overflow-x: hidden 那样
 * 把 overflow-y 隐式变为 auto，也不影响 position: sticky。
 */
html,
body {
	overflow-x: clip;
}
