/**
 * SwiftPress Gutenberg Block Overrides
 * Minimal overrides to align core blocks with theme design tokens.
 * Only loaded on pages with block content (filtered via has_blocks()).
 *
 * Performance: Override only what's necessary.
 * Let Gutenberg's own block styles do the heavy lifting.
 */

/* ─── Alignment Classes ──────────────────────────────────────────── */
.alignwide {
  max-width: calc(var(--container-xl) + 4rem);
  margin-inline: calc(-2rem);
}

.alignfull {
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
}

@media (max-width: 768px) {
  .alignwide { margin-inline: 0; }
}

/* ─── Core Image Block ───────────────────────────────────────────── */
.wp-block-image {
  margin: 0;
}

.wp-block-image img {
  border-radius: var(--radius-md);
}

.wp-block-image figcaption {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-align: center;
  margin-top: var(--space-3);
}

/* ─── Core Quote Block ───────────────────────────────────────────── */
.wp-block-quote {
  border-left: 4px solid var(--color-primary);
  padding: var(--space-4) var(--space-6);
  background: var(--color-bg-alt);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  margin: 0;
}

.wp-block-quote p {
  font-size: var(--text-md);
  font-style: italic;
  color: var(--color-text);
}

.wp-block-quote cite {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  font-style: normal;
  display: block;
  margin-top: var(--space-2);
}

/* ─── Core Pullquote ─────────────────────────────────────────────── */
.wp-block-pullquote {
  border-top: 3px solid var(--color-primary);
  border-bottom: 3px solid var(--color-primary);
  padding: var(--space-8) 0;
  text-align: center;
}

.wp-block-pullquote blockquote p {
  font-size: var(--text-xl);
  font-weight: var(--font-weight-semibold);
}

/* ─── Core Code Block ────────────────────────────────────────────── */
.wp-block-code {
  background: var(--color-bg-alt);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-md);
}

.wp-block-code code {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  background: none;
  border: none;
  padding: 0;
}

/* ─── Core Table Block ───────────────────────────────────────────── */
.wp-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

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

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background: var(--color-bg-alt);
}

/* ─── Core Button Block ──────────────────────────────────────────── */
.wp-block-button__link {
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--radius-md) !important;
  border: 1.5px solid var(--color-primary);
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}

.wp-block-button__link:hover {
  background: var(--color-primary-dark);
  box-shadow: var(--shadow-sm);
}

.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--color-primary);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--color-primary-light);
  box-shadow: none;
}

/* ─── Core Separator ─────────────────────────────────────────────── */
.wp-block-separator {
  border: none;
  border-top: var(--border-width) solid var(--color-border);
}

.wp-block-separator.is-style-wide { max-width: none; }

.wp-block-separator.is-style-dots {
  border: none;
  text-align: center;
}

.wp-block-separator.is-style-dots::before {
  content: '···';
  font-size: 1.5rem;
  color: var(--color-border);
  letter-spacing: 0.5em;
}

/* ─── Cover Block ─────────────────────────────────────────────────── */
.wp-block-cover {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

/* ─── Group / Column Blocks ──────────────────────────────────────── */
.wp-block-group.has-background {
  border-radius: var(--radius-lg);
}

/* ─── Callout / Notice style (custom class) ──────────────────────── */
.wp-block-group.sp-callout {
  padding: var(--space-6);
  border-left: 4px solid var(--color-primary);
  background: var(--color-primary-light);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

/* ─── Core Latest Posts Block ────────────────────────────────────── */
.wp-block-latest-posts {
  list-style: none;
  padding: 0;
}

.wp-block-latest-posts li {
  padding: var(--space-3) 0;
  border-bottom: var(--border-width) solid var(--color-border);
}

.wp-block-latest-posts li:last-child { border-bottom: none; }

/* ─── Editor font size mappings ──────────────────────────────────── */
:root {
  --wp--preset--font-size--small:   var(--text-sm);
  --wp--preset--font-size--medium:  var(--text-base);
  --wp--preset--font-size--large:   var(--text-xl);
  --wp--preset--font-size--x-large: var(--text-2xl);
  --wp--preset--color--primary:     var(--color-primary);
  --wp--preset--color--text:        var(--color-text);
  --wp--preset--color--background:  var(--color-bg);
  --wp--preset--color--subtle:      var(--color-bg-alt);
}
