/* ==========================================================================
   Pixelcraft Calendar – Divi 4 / Divi 5 compatibility layer
   --------------------------------------------------------------------------
   Loaded only when Divi (theme, Extra or Divi Builder plugin) is active.

   Divi styles generic content with ID / attribute selectors, e.g.
     #left-area ul, .entry-content ul, .et-l--content ul, .et_pb_text ul
     .entry-content table:not(.variations), .entry-content tr td
     .et-db #et-boc .et-l ul / h1 … (Divi Builder plugin on other themes)
   which outrank the calendar's class-based styles.

   The prefix  :is(#pc-compat#pc-compat, html)  always matches (via html)
   but carries the specificity of two IDs, so the rules below restore the
   calendar's own styles without !important. Only properties Divi touches
   are reset; component values are re-asserted where they differ.
   ========================================================================== */

/* Lists: no bullets, no Divi padding/line-height. */
:is(#pc-compat#pc-compat, html) .pc ul,
:is(#pc-compat#pc-compat, html) .pc ol {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: inherit;
}

:is(#pc-compat#pc-compat, html) .pc li {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: inherit;
}

:is(#pc-compat#pc-compat, html) .pc li::before {
	content: none;
}

/* Re-assert list components that use padding. */
:is(#pc-compat#pc-compat, html) .pc .pc-chips__list {
	padding-block: 6px;
}

@media (max-width: 767px) {
	:is(#pc-compat#pc-compat, html) .pc .pc-chips__list {
		padding-inline: var(--pc-gutter);
	}
}

:is(#pc-compat#pc-compat, html) .pc .pc-dropdown__menu {
	padding: 6px;
}

:is(#pc-compat#pc-compat, html) .pc .pc-prose ul {
	padding-left: 1.3em;
	list-style: disc;
}

:is(#pc-compat#pc-compat, html) .pc .pc-prose ol {
	padding-left: 1.3em;
	list-style: decimal;
}

:is(#pc-compat#pc-compat, html) .pc .pc-prose li {
	list-style: inherit;
	line-height: inherit;
}

/* Headings & paragraphs (Divi Builder plugin resets them by ID). */
:is(#pc-compat#pc-compat, html) .pc :is(h1, h2, h3, h4, p) {
	margin: 0;
	padding: 0;
	font-family: inherit;
}

:is(#pc-compat#pc-compat, html) .pc .pc-section-title {
	padding-bottom: 12px;
}

:is(#pc-compat#pc-compat, html) .pc .pc-prose > * + * {
	margin-top: 1em;
}

/* Month table: Divi adds borders, padding and margins to content tables. */
:is(#pc-compat#pc-compat, html) .pc .pc-month__grid {
	width: 100%;
	margin: 0;
	border: 1px solid var(--pc-border);
	border-collapse: separate;
	border-spacing: 0;
	text-align: left;
}

:is(#pc-compat#pc-compat, html) .pc .pc-month__grid th {
	padding: 12px 10px;
	border: 0;
	border-bottom: 1px solid var(--pc-border);
	font-size: var(--pc-fs-sm);
	font-weight: 600;
	color: var(--pc-text-subtle);
}

:is(#pc-compat#pc-compat, html) .pc .pc-month__grid td {
	padding: 8px;
	border: 0;
	border-right: 1px solid var(--pc-border);
	border-bottom: 1px solid var(--pc-border);
}

:is(#pc-compat#pc-compat, html) .pc .pc-month__grid td:last-child {
	border-right: 0;
}

:is(#pc-compat#pc-compat, html) .pc .pc-month__grid tr:last-child td {
	border-bottom: 0;
}

@container pc-main (max-width: 599px) {
	:is(#pc-compat#pc-compat, html) .pc .pc-month__grid th {
		padding: 10px 2px;
		font-size: var(--pc-fs-xs);
		text-align: center;
	}

	:is(#pc-compat#pc-compat, html) .pc .pc-month__grid td {
		padding: 5px 2px;
	}
}

/* Search field: Divi styles text inputs (padding, border, colour). */
:is(#pc-compat#pc-compat, html) .pc .pc-search__input {
	height: var(--pc-control-h);
	padding: 0 16px 0 49px;
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-md);
	background: var(--pc-surface);
	font-size: var(--pc-fs-md);
	color: var(--pc-text);
}

:is(#pc-compat#pc-compat, html) .pc .pc-search__input:focus {
	border-color: var(--pc-primary);
}

@media (max-width: 767px) {
	:is(#pc-compat#pc-compat, html) .pc .pc-search__input {
		padding-left: 46px;
		border-radius: var(--pc-radius-lg);
		font-size: var(--pc-fs-lg);
	}
}

/* Images: Divi's module image rules must not distort the covers. */
:is(#pc-compat#pc-compat, html) .pc .pc-img {
	max-width: none;
	margin: 0;
}

/* Inside Divi rows the module may sit in a narrow column: let the hero
   keep rounded corners instead of looking cut off. */
.et_pb_module.pixelcraft_divi_calendar .pc-hero,
.et_pb_module.pixelcraft_divi_calendar .pc-hero + .pc-panel {
	border-radius: var(--pc-radius-panel);
}

.et_pb_module.pixelcraft_divi_calendar .pc-hero {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.et_pb_module.pixelcraft_divi_calendar .pc-hero + .pc-panel {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}
