/*!
 * Dainty Touch — Block Constraint Net
 *
 * The curated container list in dts-responsive.css only catches the class names
 * that themes and page builders have in common. A site accumulates bespoke ones
 * too — `.promo { width: 1400px }` written for a campaign three years ago — and
 * a single one of those keeps the whole page from scaling.
 *
 * This file is the general net: no block-level element may render wider than
 * the space its parent gives it.
 *
 * Every selector is wrapped in :where(), so its specificity is zero. Any rule
 * the theme actually wrote — `.alignfull { max-width: none }`, a deliberate
 * full-bleed section — still wins. This only fills in where nothing was set.
 *
 * Disable under Settings → Responsive Fix if a decorative element that is meant
 * to bleed past its parent gets clipped.
 */

:where(body :is(
	div,
	section,
	article,
	aside,
	header,
	footer,
	main,
	nav,
	form,
	fieldset,
	p,
	ul,
	ol,
	dl,
	figure,
	blockquote,
	address,
	hr
)):where(:not(
	/* Slider and carousel tracks are wider than their viewport by design. */
	.slick-track,
	.slick-list,
	.swiper-wrapper,
	.swiper-slide,
	.owl-stage,
	.owl-stage-outer,
	.flickity-slider,
	.flickity-viewport,
	.tns-inner,
	.tns-slider,
	.splide__list,
	.splide__track,
	.glide__slides,
	.glide__track,
	.et_pb_slides,
	[class*="marquee"],
	[class*="ticker"],
	/* Anything the site has explicitly opted out. */
	.dts-allow-overflow,
	.dts-allow-overflow *
)) {
	max-width: 100%;
}

/* Our own table scroller must stay free to be wider than its wrapper — that is
 * what gives the table its own scrollbar instead of squashing the columns. */
.dts-table-scroll > table {
	max-width: none;
	min-width: 100%;
}
