/* ==========================================================================
   TSARTSARIS BLOG PREMIUM - Gutenberg Block Overrides
   Dark theme styling for WordPress core blocks
   ========================================================================== */

/* ---- Code & Preformatted ---- */
.wp-block-code,
.wp-block-preformatted {
  background-color: var(--color-code-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  font-family: var(--font-code);
  font-size: 14px;
  color: var(--color-text-primary);
  overflow-x: auto;
  line-height: 1.6;
}

.wp-block-code code {
  background: none;
  padding: 0;
  border-radius: 0;
  color: inherit;
  font-size: inherit;
}

/* ---- Quote ---- */
.wp-block-quote {
  border-left: 3px solid var(--color-primary);
  padding: var(--space-sm) var(--space-lg);
  margin: var(--space-xl) 0;
  color: var(--color-text-secondary);
  font-style: italic;
  background: none;
}

.wp-block-quote p {
  margin-bottom: var(--space-sm);
}

.wp-block-quote p:last-of-type {
  margin-bottom: 0;
}

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

/* ---- Table ---- */
.wp-block-table {
  margin: var(--space-xl) 0;
}

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

.wp-block-table th {
  background-color: var(--color-bg-tertiary);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  text-align: left;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  color: var(--color-text-primary);
}

.wp-block-table td {
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  color: var(--color-text-secondary);
}

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

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

/* ---- Image & Gallery ---- */
.wp-block-image img {
  border-radius: var(--radius-md);
}

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

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

.wp-block-gallery figcaption {
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
}

/* ---- Separator ---- */
.wp-block-separator {
  border: none;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--color-primary) 50%,
    transparent
  );
  opacity: 0.4;
  margin: var(--space-xxl) auto;
}

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

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

.wp-block-separator.is-style-dots::before {
  content: '···';
  color: var(--color-primary);
  font-family: var(--font-heading);
  font-size: var(--font-size-xl);
  letter-spacing: 1em;
}

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

.wp-block-pullquote blockquote {
  border-left: none;
  padding-left: 0;
  font-style: normal;
}

.wp-block-pullquote p {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-family: var(--font-heading);
  color: var(--color-text-primary);
  line-height: var(--line-height-tight);
}

.wp-block-pullquote cite,
.wp-block-pullquote .wp-block-pullquote__citation {
  display: block;
  margin-top: var(--space-md);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

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

.wp-block-cover .wp-block-cover__inner-container {
  color: var(--color-text-primary);
}

.wp-block-cover .wp-block-cover__inner-container p {
  color: var(--color-text-primary);
}

.wp-block-cover .wp-block-cover__inner-container h1,
.wp-block-cover .wp-block-cover__inner-container h2,
.wp-block-cover .wp-block-cover__inner-container h3,
.wp-block-cover .wp-block-cover__inner-container h4 {
  color: var(--color-text-primary);
}

/* ---- Columns ---- */
.wp-block-columns {
  gap: var(--space-xl);
  margin-bottom: var(--space-xl);
}

.wp-block-column {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .wp-block-columns {
    gap: var(--space-lg);
  }
}

/* ---- Button ---- */
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  padding: var(--space-sm) var(--space-lg);
  background-color: var(--color-primary);
  color: var(--color-bg-primary);
  border: none;
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-sm);
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--transition-base),
    transform var(--transition-fast),
    box-shadow var(--transition-base);
}

.wp-block-button .wp-block-button__link:hover {
  background-color: var(--color-primary-light);
  transform: translateY(-2px);
  box-shadow: 0 4px 15px var(--color-primary-glow);
  text-decoration: none;
  color: var(--color-bg-primary);
}

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

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

/* ---- List ---- */
.wp-block-list {
  padding-left: var(--space-lg);
  margin-bottom: var(--space-lg);
}

.wp-block-list li {
  margin-bottom: var(--space-xs);
  line-height: var(--line-height-base);
  color: var(--color-text-secondary);
}

/* ---- Details / Accordion ---- */
.wp-block-details {
  background-color: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-md);
}

.wp-block-details summary {
  padding: var(--space-md);
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  cursor: pointer;
  transition: color var(--transition-base);
}

.wp-block-details summary:hover {
  color: var(--color-primary);
}

.wp-block-details > *:not(summary) {
  padding: 0 var(--space-md) var(--space-md);
}

/* ---- Heading anchors ---- */
.wp-block-heading a {
  color: inherit;
  text-decoration: none;
}

.wp-block-heading a:hover {
  color: var(--color-primary);
}
