/*
 * Layout — content widths, alignment, and full-bleed handling.
 *
 * The full-bleed pattern uses 50vw negative margins (resilient to
 * ancestor max-widths). Alignwide constrains to 1140px with fluid
 * inner gutters via clamp(); alignfull bleeds to viewport edges
 * regardless of Kadence container constraints.
 */

/* ---------- Page edge gutters ---------- *
 * Every page child inherits horizontal breathing room from the container.
 * Alignfull blocks escape via negative-margin trick below; alignwide
 * inherits and constrains to its own max-width. Default child blocks
 * sit inside these gutters at the prose width set above.
 *
 * Gutters scale: 16px on mobile → 24px tablet → 32px desktop. Below 16px,
 * touch targets crash into the screen edge. */
.entry-content {
	padding-left:  clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
}

/* ---------- Full-bleed (alignfull) ---------- *
 * Bleed past the container's gutters AND any ancestor max-width by
 * computing a negative margin that re-centers on viewport. */
.entry-content > .alignfull {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ---------- Wide alignment (alignwide) ---------- *
 * Constrains to 1140px max; padding inherited from .entry-content above. */
.entry-content > .alignwide {
	max-width: 1140px;
	margin-left: auto;
	margin-right: auto;
}

/* Default content width — prose paragraphs, lists, basic blocks. */
.entry-content > :not(.alignwide):not(.alignfull) {
	max-width: var(--isjac-content-prose);
	margin-left: auto;
	margin-right: auto;
}

/* No top margin between consecutive sections — each section block
 * already owns its own padding. Stacking margins on top of paddings was
 * producing 240px+ gaps (hero padding-bottom + this margin + group
 * padding-top), which read as broken layout, not breathing room.
 *
 * Specifically null margin-top so a child section's padding-top is the
 * single source of inter-section vertical space. */
.entry-content > .alignfull + .alignwide,
.entry-content > .alignwide  + .alignwide,
.entry-content > .alignwide  + .alignfull,
.entry-content > .alignfull  + .alignfull {
	margin-top: 0;
}

.entry-content > .alignwide + .wp-block-separator {
	margin-top: 0;
	margin-bottom: 0;
}

/* ---------- Separators ---------- */
.wp-block-separator {
	border: 0;
	border-top: 1px solid #DDE5EE;     /* rule */
	max-width: 1140px;
	margin-left: auto;
	margin-right: auto;
}
