/**
 * Content block — layout, gutters (Timeline / Research parity), scroll-reveal start state.
 *
 * Horizontal: .cw-content-block-inner uses --cw-gutter-inline + env(safe-area-inset-*).
 * Vertical safe space: Advanced → Safe space above/below (desktop 8rem; tablet/mobile defaults lower in widget PHP).
 * Stacked widgets: adjacent .elementor-widget-cw-content-block drops duplicate padding-top unless --preserve-stacked-top.
 *
 * @package CW_Elementor_Widgets
 */

/* -------------------------------------------------------------------------
   Section shell (full width; padding-top/bottom from Elementor Advanced defaults)
   ------------------------------------------------------------------------- */
.elementor-widget-cw-content-block .cw-content-block-section {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	position: relative;
}

/*
 * Two Content blocks in the same column: bottom padding of block A + top padding of block B reads as double rhythm.
 * Zero the follower’s top padding unless the editor enabled “Keep full safe space above when stacked”.
 * !important wins over Elementor post CSS when IDs are used on wrappers.
 */
.elementor-widget-cw-content-block
	+ .elementor-widget-cw-content-block
	.cw-content-block-section:not(.cw-content-block-section--preserve-stacked-top) {
	padding-top: 0 !important;
}

/* -------------------------------------------------------------------------
   Inner — max content width + laptop/tablet/phone gutters (matches cw-timeline.css)
   ------------------------------------------------------------------------- */
.elementor-widget-cw-content-block .cw-content-block-inner {
	width: 100%;
	max-width: min(1400px, var(--cw-content-max-width, 1280px));
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	padding-left: 0;
	padding-right: 0;
	/* Avoid rare horizontal scroll from flex min-content / long words */
	overflow-x: hidden;
	overflow-x: clip;
}

@media (max-width: 1366px) {
	.elementor-widget-cw-content-block .cw-content-block-inner {
		padding-inline-start: max(
			var(--cw-gutter-inline, clamp(1rem, 5vw, 1.5rem)),
			env(safe-area-inset-left, 0px)
		);
		padding-inline-end: max(
			var(--cw-gutter-inline, clamp(1rem, 5vw, 1.5rem)),
			env(safe-area-inset-right, 0px)
		);
	}
}

@media (min-width: 1367px) {
	.elementor-widget-cw-content-block .cw-content-block-inner {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

/* -------------------------------------------------------------------------
   Two-column row
   ------------------------------------------------------------------------- */
.cw-content-block {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.cw-content-block--align-center {
	align-items: center;
}

.cw-content-block--no-media .cw-content-block__content {
	flex: 1 1 100%;
	max-width: 100%;
	min-width: 0;
}

.cw-content-block__media {
	flex: 0 0 45%;
	max-width: 45%;
	min-width: 0;
	box-sizing: border-box;
}

.cw-content-block__frame {
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	min-height: 200px;
	height: 100%;
	background: rgba(0, 0, 0, 0.04);
}

.cw-content-block__img,
.cw-content-block__video {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	min-width: 0;
	min-height: 0;
	object-fit: cover;
	object-position: center center;
	flex: 0 1 auto;
}

.cw-content-block__video {
	background: #000;
}

.cw-content-block__content {
	flex: 1 1 0;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	overflow-wrap: anywhere;
	word-wrap: break-word;
}

/* Section intro heading stack inside two-column copy (Operational Environments parity); not centered. */
.elementor-widget-cw-content-block .cw-content-block__content .cw-content-block-intro.cw-section-intro {
	width: 100%;
	margin: 0;
	text-align: start;
}

.elementor-widget-cw-content-block .cw-content-block__content .cw-section-intro__heading {
	overflow-wrap: anywhere;
	word-wrap: break-word;
}

/* Desktop: media on the right — visual order (copy still stacks first on small screens). */
.cw-content-block--media-right .cw-content-block__media {
	order: 2;
}

.cw-content-block--media-right .cw-content-block__content {
	order: 1;
}

.cw-content-block__title {
	margin: 0;
}

/* Title + optional accent bar: same flex column contract as CW Heading (default) .cw-heading-default__title-group */
.elementor-widget-cw-content-block .cw-content-block__title-group.cw-heading-default__title-group {
	max-width: 100%;
}

.elementor-widget-cw-content-block .cw-content-block__title-group--has-accent .cw-section-intro__heading {
	margin-bottom: 1rem;
}

/* Last-word pill: match heading text color; optional Style → pill color override still wins (Elementor post-CSS loads later). */
.elementor-widget-cw-content-block .cw-section-intro__heading .text-pill,
.elementor-widget-cw-content-block .cw-section-intro__heading .text-pill .split-word {
	color: inherit;
}

/*
 * Extra pill effect layer (under gradient border ::before from cw-section-intro.css).
 * Style tab → Heading → Extra pill effect sets background / shadow / inset on ::after.
 */
.elementor-widget-cw-content-block .cw-section-intro__heading .text-pill {
	isolation: isolate;
}

.elementor-widget-cw-content-block .cw-section-intro__heading .text-pill::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: inherit;
	z-index: -2;
	pointer-events: none;
}

.cw-content-block__list {
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.cw-content-block__list li {
	position: relative;
	padding-left: 1.25rem;
	margin: 0.5rem 0 0;
}

.cw-content-block__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 0.35rem;
	height: 0.35rem;
	border-radius: 50%;
	box-sizing: border-box;
	background: var(--cw-content-block-list-marker, var(--cw-accent-primary, #dc2626));
}

/* Unordered: square marker (same pseudo pattern as dot) */
.cw-content-block__list--type-square li::before {
	border-radius: 0;
	width: 0.3rem;
	height: 0.3rem;
	top: 0.58em;
}

/* Ordered lists: native markers, no custom dot */
.cw-content-block__list--type-decimal,
.cw-content-block__list--type-lower_alpha,
.cw-content-block__list--type-upper_alpha,
.cw-content-block__list--type-lower_roman {
	list-style-position: outside;
	padding-left: 1.35rem;
}

.cw-content-block__list--type-decimal {
	list-style-type: decimal;
}

.cw-content-block__list--type-lower_alpha {
	list-style-type: lower-alpha;
}

.cw-content-block__list--type-upper_alpha {
	list-style-type: upper-alpha;
}

.cw-content-block__list--type-lower_roman {
	list-style-type: lower-roman;
}

.cw-content-block__list--type-decimal li,
.cw-content-block__list--type-lower_alpha li,
.cw-content-block__list--type-upper_alpha li,
.cw-content-block__list--type-lower_roman li {
	padding-left: 0.35rem;
}

.cw-content-block__list--type-decimal li::before,
.cw-content-block__list--type-lower_alpha li::before,
.cw-content-block__list--type-upper_alpha li::before,
.cw-content-block__list--type-lower_roman li::before {
	display: none;
	content: none;
}

.cw-content-block__list--type-decimal li::marker,
.cw-content-block__list--type-lower_alpha li::marker,
.cw-content-block__list--type-upper_alpha li::marker,
.cw-content-block__list--type-lower_roman li::marker {
	color: var(--cw-content-block-list-marker, var(--cw-accent-primary, #dc2626));
}

.cw-content-block__cta-wrap {
	margin-top: 1.25rem;
}

.cw-content-block__cta-wrap--above {
	margin-top: 0;
	margin-bottom: 1rem;
}

.cw-content-block-section[data-cw-content-block-scroll-reveal="1"] .gsap-cw-content-block-reveal {
	opacity: 0;
	transform: translate3d(0, 30px, 0);
}

@media (prefers-reduced-motion: reduce) {
	.cw-content-block-section[data-cw-content-block-scroll-reveal="1"] .gsap-cw-content-block-reveal {
		opacity: 1;
		transform: none;
	}
}

.elementor-editor-active .cw-content-block-section[data-cw-content-block-scroll-reveal="1"] .gsap-cw-content-block-reveal {
	opacity: 1;
	transform: none;
}

.cw-content-block__body > :first-child {
	margin-top: 0;
}

.cw-content-block__body > :last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Tablet / phone: single column, tighter default rhythm (gutter still on inner)
   ------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.cw-content-block__media,
	.cw-content-block__content {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.cw-content-block--media-right .cw-content-block__content {
		order: 1;
	}

	.cw-content-block--media-right .cw-content-block__media {
		order: 2;
	}

}
