/* ══════════════════════════════════════════════
   CMP Master — builder compatibility layer (v3.3.0)
   Per-builder fixes for all module front-end output. The builder is
   detected server-side (cmp_get_builder) and exposed two ways:
   - body class:            .cmp-builder-{divi5|divi4|elementor|beaver|gutenberg|default}
   - cards wrapper class:   .cmp-cards--{builder}
   ══════════════════════════════════════════════ */

/* ---- Universal: flex/grid-child overflow safety ----
   A CSS grid inside ANY flex column can overflow its track unless
   min-width is released. Covers Divi 5 flex columns, Elementor
   containers, and theme flex wrappers alike. */
.cmp-cards,
.cmp-pub-grid {
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}

/* ══════════ Divi 5 (flex layout system) ══════════ */

/* Flex columns constrain children; release and fill. */
.et_flex_column .cmp-cards,
.et_flex_column .cmp-pub-grid,
.et_pb_code_inner > .cmp-cards,
.et_pb_code_inner > .cmp-pub-grid {
	min-width: 0;
	width: 100%;
	flex: 1 1 auto;
}

/* Divi's highest-specificity link colour rule is
   ".et-db #et-boc .et-l a" — it repaints embedded link/button
   colours unless matched at equal or higher specificity. */
.et-db #et-boc .et-l .cmp-card__links a,
.cmp-builder-divi5 .cmp-card__links a,
.cmp-builder-divi4 .cmp-card__links a {
	color: var(--cmp-cards-link-color, #FFFFFF) !important;
	text-decoration: none !important;
}
.et-db #et-boc .et-l .cmp-card__button,
.cmp-builder-divi5 .cmp-card__button,
.cmp-builder-divi4 .cmp-card__button {
	color: #FFFFFF !important;
	text-decoration: none !important;
}
.et-db #et-boc .et-l .cmp-card__body a {
	color: #000080;
}

/* Divi resets button-element styling inside modules; the accordion
   toggle is a real <button> and must stay transparent. */
.et-db #et-boc .et-l .cmp-card__toggle,
.cmp-builder-divi5 .cmp-card__toggle {
	background: transparent !important;
	border: none !important;
	padding: 36px 28px;
}

/* Divi 5 sections apply default padding at ≥1350px; card grids
   placed edge-to-edge should not inherit double spacing. */
.cmp-builder-divi5 .et_pb_code .cmp-cards {
	margin-left: 0;
	margin-right: 0;
}

/* ══════════ Elementor ══════════ */

.elementor-widget-container .cmp-cards,
.elementor-widget-container .cmp-pub-grid {
	width: 100%;
	min-width: 0;
}
.elementor .cmp-card__links a,
.cmp-builder-elementor .cmp-card__links a {
	color: var(--cmp-cards-link-color, #FFFFFF) !important;
	text-decoration: none !important;
}

/* ══════════ Gutenberg / block themes ══════════ */

/* Block themes constrain .entry-content children to contentSize;
   let card grids use their container's full width. */
.entry-content > .cmp-cards,
.wp-block-shortcode .cmp-cards {
	max-width: none;
}
.cmp-builder-gutenberg .cmp-card__body ul {
	list-style: none;
	padding-left: 0;
}

/* ══════════ Beaver Builder ══════════ */

.fl-module-content .cmp-cards,
.fl-module-content .cmp-pub-grid {
	width: 100%;
	min-width: 0;
}
