/**
 * Front-end Block Content Styles
 *
 * Lightweight, block-editor-friendly styling for content authored with
 * Gutenberg. Loaded as a separate stylesheet so PurgeCSS / Tailwind's content
 * scanner does not strip class names that appear only in saved post content.
 *
 * Used together with WordPress core's wp-block-styles (registered via
 * add_theme_support('wp-block-styles')) — this file only adds the parts
 * specific to our theme: container width, alignwide / alignfull, and
 * typography that respects theme.json tokens.
 *
 * @package DemocraticServices
 * @since   2026.05
 */

/* ---------------------------------------------------------------------------
 * Layout: alignwide / alignfull
 *
 * `.entry-content.democratic-block-content` constrains regular blocks to the
 * site's content width but lets `.alignwide` and `.alignfull` blocks break out
 * of that container, matching what authors see in the Gutenberg canvas.
 * ------------------------------------------------------------------------- */
.entry-content.democratic-block-content {
  --content-max: 1200px;
  --wide-max: 1400px;
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
}

.entry-content.democratic-block-content > .alignwide {
  max-width: var(--wide-max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.entry-content.democratic-block-content > .alignfull {
  max-width: none;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.entry-content.democratic-block-content > .alignleft {
  float: left;
  margin: 0 1.5rem 1rem 0;
}

.entry-content.democratic-block-content > .alignright {
  float: right;
  margin: 0 0 1rem 1.5rem;
}

/* ---------------------------------------------------------------------------
 * Block typography (only when authored via Gutenberg).
 * ------------------------------------------------------------------------- */
.entry-content.democratic-block-content {
  color: var(--democratic-color-text, var(--color-gov-text, #0b0c0c));
  font-size: 1rem;
  line-height: 1.65;
}

.entry-content.democratic-block-content p,
.entry-content.democratic-block-content li {
  color: inherit;
}

.entry-content.democratic-block-content > * + * {
  margin-top: 1.25rem;
}

.entry-content.democratic-block-content h1,
.entry-content.democratic-block-content h2,
.entry-content.democratic-block-content h3,
.entry-content.democratic-block-content h4,
.entry-content.democratic-block-content h5,
.entry-content.democratic-block-content h6 {
  font-weight: 700;
  line-height: 1.25;
  color: var(--democratic-color-text, #0b0c0c);
}

.entry-content.democratic-block-content h2 {
  font-size: 1.875rem;
  margin-top: 2rem;
}
.entry-content.democratic-block-content h3 {
  font-size: 1.5rem;
  margin-top: 1.75rem;
}
.entry-content.democratic-block-content h4 {
  font-size: 1.25rem;
}

.entry-content.democratic-block-content a {
  color: var(--color-gov-primary, #1d70b8);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.entry-content.democratic-block-content a:hover {
  color: #003078;
}

.entry-content.democratic-block-content blockquote.wp-block-quote,
.entry-content.democratic-block-content blockquote {
  margin: 1.5rem 0;
  padding: 1.25rem 1.5rem;
  border-left: 4px solid var(--color-gov-primary, #1d70b8);
  background: #f3f2f1;
  border-radius: 6px;
  font-style: italic;
}

.entry-content.democratic-block-content ul,
.entry-content.democratic-block-content ol {
  padding-left: 1.75rem;
}

.entry-content.democratic-block-content ul li,
.entry-content.democratic-block-content ol li {
  margin-bottom: 0.375rem;
}

.entry-content.democratic-block-content img,
.entry-content.democratic-block-content .wp-block-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.entry-content.democratic-block-content .wp-block-button__link {
  background-color: var(--color-gov-primary, #1d70b8);
  color: #fff;
  border-radius: 6px;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  transition: background-color 0.2s ease;
}

.entry-content.democratic-block-content
  .wp-block-button.is-style-outline
  .wp-block-button__link {
  background-color: transparent;
  color: var(--color-gov-primary, #1d70b8);
  border: 2px solid var(--color-gov-primary, #1d70b8);
}

.entry-content.democratic-block-content .wp-block-button__link:hover {
  background-color: #003078;
  color: #fff;
}

.entry-content.democratic-block-content .wp-block-separator {
  border: none;
  border-top: 1px solid #b1b4b6;
  margin: 2rem auto;
}

.entry-content.democratic-block-content .wp-block-table {
  overflow-x: auto;
}

.entry-content.democratic-block-content .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
}

.entry-content.democratic-block-content .wp-block-table th,
.entry-content.democratic-block-content .wp-block-table td {
  border: 1px solid #b1b4b6;
  padding: 0.5rem 0.75rem;
  text-align: left;
}

.entry-content.democratic-block-content .wp-block-table thead th {
  background: #f3f2f1;
  font-weight: 700;
}

/* ============================================================
   Sidebar Widget Area
   Default WP widgets rendered alongside page/single content.
   ============================================================ */
.site-sidebar.widget-area {
  font-size: 0.95rem;
  color: var(--democratic-color-text, #0b0c0c);
}

.site-sidebar.widget-area .widget,
.site-sidebar.widget-area section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 1.25rem 1.25rem;
  margin-bottom: 1.5rem;
}

.site-sidebar.widget-area .widget:last-child,
.site-sidebar.widget-area section:last-child {
  margin-bottom: 0;
}

.site-sidebar.widget-area .widget-title,
.site-sidebar.widget-area h2,
.site-sidebar.widget-area h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.75rem 0;
  color: var(--democratic-color-text, #0b0c0c);
}

.site-sidebar.widget-area ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-sidebar.widget-area li {
  padding: 0.375rem 0;
  border-bottom: 1px solid #f3f4f6;
}

.site-sidebar.widget-area li:last-child {
  border-bottom: 0;
}

.site-sidebar.widget-area a {
  color: var(--color-gov-primary, #1d70b8);
  text-decoration: none;
}

.site-sidebar.widget-area a:hover,
.site-sidebar.widget-area a:focus {
  text-decoration: underline;
}

.site-sidebar.widget-area .search-form,
.site-sidebar.widget-area .wp-block-search__inside-wrapper {
  display: flex;
  gap: 0.5rem;
}

.site-sidebar.widget-area input[type="search"],
.site-sidebar.widget-area .wp-block-search__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.95rem;
}

.site-sidebar.widget-area .search-submit,
.site-sidebar.widget-area .wp-block-search__button {
  background: var(--color-gov-primary, #1d70b8);
  color: #ffffff;
  border: 0;
  border-radius: 8px;
  padding: 0.5rem 1rem;
  font-weight: 600;
  cursor: pointer;
}

.site-sidebar.widget-area .search-submit:hover,
.site-sidebar.widget-area .wp-block-search__button:hover {
  background: #003078;
}

/* ============================================================
   Custom HTML / author-supplied CSS (no theme typography layer)
   Used when editors paste HTML or add Custom CSS in the post box.
   ============================================================ */
.entry-content.democratic-custom-html-content,
.blank-canvas.democratic-custom-html-content {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

.entry-content.democratic-custom-html-content > * + * {
  margin-top: revert;
}

.entry-content.democratic-custom-html-content h1,
.entry-content.democratic-custom-html-content h2,
.entry-content.democratic-custom-html-content h3,
.entry-content.democratic-custom-html-content h4,
.entry-content.democratic-custom-html-content h5,
.entry-content.democratic-custom-html-content h6,
.entry-content.democratic-custom-html-content p,
.entry-content.democratic-custom-html-content a,
.entry-content.democratic-custom-html-content ul,
.entry-content.democratic-custom-html-content ol,
.entry-content.democratic-custom-html-content li,
.entry-content.democratic-custom-html-content blockquote,
.entry-content.democratic-custom-html-content img,
.entry-content.democratic-custom-html-content table,
.entry-content.democratic-custom-html-content th,
.entry-content.democratic-custom-html-content td {
  all: revert;
}

body.democratic-custom-content-layout .entry-content.democratic-custom-html-content .wp-block-button__link,
body.democratic-custom-content-layout .entry-content.democratic-custom-html-content .wp-block-separator,
body.democratic-custom-content-layout .entry-content.democratic-custom-html-content .wp-block-table {
  all: revert;
}
