/**
 * Author-controlled HTML/CSS — full isolation from theme typography and layout.
 *
 * Loaded on custom-layout pages that are not visual-builder pages.
 * Theme global resets (main.css, Tailwind base, accessibility, block-content)
 * must not override pasted HTML or per-page Custom CSS.
 *
 * @package DemocraticServices
 */

/* Visual builder output: never apply theme prose resets inside this tree. */
body.dw-vpb-canvas-layout .democratic-visual-page,
body.dw-vpb-canvas-layout .democratic-visual-page-shell,
body.democratic-custom-content-layout .democratic-visual-page {
  max-width: none;
}

/* -------------------------------------------------------------------------
   Isolate author markup from theme global element styles (main.css, a11y, etc.)
   ------------------------------------------------------------------------- */

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content) {
  --content-max: 1200px;
  max-width: var(--content-max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  --democratic-color-surface: #ffffff;
  color: initial;
  font-family: unset;
  font-size: unset;
  line-height: unset;
  font-weight: unset;
  letter-spacing: unset;
  text-transform: unset;
}

/* Prevent theme typography colors from leaking into unclassed authored text. */
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  h1:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  h2:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  h3:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  h4:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  h5:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  h6:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  p:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  li:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  span:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  strong:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  em:not([class]),
:where(
    body.democratic-custom-content-layout
      :is(.democratic-author-sandbox, .democratic-custom-html-content)
  )
  a:not([class]) {
  color: inherit;
}

/* Keep custom content color tokens true to Tailwind values (not global branding remaps). */
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-gray-50 {
  background-color: var(--color-gray-50) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-gray-100 {
  background-color: var(--color-gray-100) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-slate-50 {
  background-color: var(--color-slate-50) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-slate-100 {
  background-color: var(--color-slate-100) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-gov-gray-50 {
  background-color: var(--color-gov-gray-50) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-gov-grey-light {
  background-color: var(--color-gov-grey-light) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .bg-white {
  background-color: var(--color-white) !important;
}

/* Override legacy utility collisions from main.css inside authored custom content. */
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .rounded-full {
  border-radius: calc(infinity * 1px) !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .rounded {
  border-radius: 0.25rem !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .rounded-none,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .rounded-0 {
  border-radius: 0 !important;
}

/* Keep legacy theme button classes from overriding authored custom button styling. */
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .button:not([class*="bg-"]):not([class*="text-"]),
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .btn-primary,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .btn-secondary,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .btn-outline,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .wp-element-button,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .wp-block-button__link {
  color: inherit !important;
  background: initial !important;
  border: initial !important;
  box-shadow: none !important;
}

/* Alignment compatibility for authored classes after theme stylesheet suppression. */
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .text-center,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .has-text-align-center,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align:center"],
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align: center"] {
  text-align: center !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .text-left,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .has-text-align-left,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align:left"],
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align: left"] {
  text-align: left !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .text-right,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .has-text-align-right,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align:right"],
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align: right"] {
  text-align: right !important;
}

body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .text-justify,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  .has-text-align-justify,
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align:justify"],
body.democratic-custom-content-layout
  :is(.democratic-author-sandbox, .democratic-custom-html-content)
  [style*="text-align: justify"] {
  text-align: justify !important;
}
