/* soledit — document body: saved HTML + editor WYSIWYG. Load on static sites (wrap jsonToHtml in .soledit-doc-body) and in CMS. Pair with content-editor.css only in the editor. */

:where(.soledit-doc-body, .soledit-editor) {
  --soledit-block-gap: 1.25rem;
  --soledit-landing-radius: 0.625rem;
  --soledit-landing-border: #e4e4e7;
  --soledit-landing-muted: #f4f4f5;
  --soledit-landing-accent: #4f46e5;
  --soledit-landing-accent-soft: #eef2ff;
}

/* Published pages: top-level block gaps (the editor uses .ProseMirror > * + * in content-editor.css). */
.soledit-doc-body > * + * {
  margin-block-start: var(--soledit-block-gap, 1.25rem);
}
.soledit-doc-body > p + p {
  margin-block-start: 0.75em;
}

/* Headings */
:where(.soledit-doc-body, .soledit-editor) h1 { font-size: 2em; font-weight: 700; line-height: 1.2; }
:where(.soledit-doc-body, .soledit-editor) h2 { font-size: 1.5em; font-weight: 600; line-height: 1.3; }
:where(.soledit-doc-body, .soledit-editor) h3 { font-size: 1.25em; font-weight: 600; line-height: 1.4; }

/* Lists */
:where(.soledit-doc-body, .soledit-editor) ul { list-style: disc; padding-left: 1.5rem; }
:where(.soledit-doc-body, .soledit-editor) ol { list-style: decimal; padding-left: 1.5rem; }
:where(.soledit-doc-body, .soledit-editor) li > p { margin: 0; }

/* Task list */
:where(.soledit-doc-body, .soledit-editor) ul[data-type="taskList"] {
  list-style: none;
  padding-left: 0;
}
:where(.soledit-doc-body, .soledit-editor) ul[data-type="taskList"] li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
:where(.soledit-doc-body, .soledit-editor) ul[data-type="taskList"] li input[type="checkbox"] {
  margin-top: 0.3em;
}

/* Blockquote */
:where(.soledit-doc-body, .soledit-editor) blockquote {
  border-left: 3px solid #d1d5db;
  padding-left: 1rem;
  color: #6b7280;
  font-style: italic;
}

/* Links */
:where(.soledit-doc-body, .soledit-editor) a {
  color: #2563eb;
  text-decoration: underline;
  cursor: pointer;
}

/* Image */
:where(.soledit-doc-body, .soledit-editor) img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}
/* Natural frame + zoom: fixed layout box; scaled bitmap clipped (avoids growing cards/columns). */
:where(.soledit-doc-body, .soledit-editor) .soledit-image-natural-zoom-host {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  border-radius: 4px;
  line-height: 0;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-natural-zoom-host[data-size='small'] {
  max-width: 200px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-natural-zoom-host[data-size='medium'] {
  max-width: 400px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-natural-zoom-host[data-size='large'] {
  max-width: 640px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-natural-zoom-host[data-size='full'] {
  max-width: 100%;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-natural-zoom-host img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: top;
}
/* Image display size (data-size): natural = no constraint */
:where(.soledit-doc-body, .soledit-editor) img[data-size="small"] { max-width: 200px; }
:where(.soledit-doc-body, .soledit-editor) img[data-size="medium"] { max-width: 400px; }
:where(.soledit-doc-body, .soledit-editor) img[data-size="large"] { max-width: 640px; }
:where(.soledit-doc-body, .soledit-editor) img[data-size="full"] { max-width: 100%; }
:where(.soledit-doc-body, .soledit-editor) img[data-frame]:not([data-frame="natural"]) {
  width: 100%;
  max-width: 100%;
  display: block;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame="natural"] {
  height: auto;
  object-fit: contain;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame="square"] {
  aspect-ratio: 1 / 1;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame="portrait"] {
  aspect-ratio: 4 / 5;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame="landscape"] {
  aspect-ratio: 16 / 9;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame="banner"] {
  aspect-ratio: 21 / 9;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame="custom"] {
  aspect-ratio: auto;
  min-height: 120px;
  max-height: 900px;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame]:not([data-frame="natural"]) {
  object-fit: cover;
}
:where(.soledit-doc-body, .soledit-editor) img[data-frame-fit="contain"]:not([data-frame="natural"]) {
  object-fit: contain;
}

/* Framed image + zoom (>100%): clip scaled bitmap */
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 4px;
  width: 100%;
  max-width: 100%;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-size="small"] {
  max-width: 200px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-size="medium"] {
  max-width: 400px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-size="large"] {
  max-width: 640px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-size="full"] {
  max-width: 100%;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-frame="square"] {
  aspect-ratio: 1 / 1;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-frame="portrait"] {
  aspect-ratio: 4 / 5;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-frame="landscape"] {
  aspect-ratio: 16 / 9;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-frame="banner"] {
  aspect-ratio: 21 / 9;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host[data-frame="custom"] {
  aspect-ratio: auto;
  min-height: 120px;
  max-height: 900px;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-image-frame-host__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  display: block;
  border-radius: 0;
}

/* Image figure */
.soledit-image-figure {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.soledit-image-caption {
  font-size: 0.875rem;
  color: #6b7280;
  text-align: center;
  width: 100%;
}
.soledit-image-caption:empty::before {
  content: 'Add a caption…';
  color: #9ca3af;
}

/* Horizontal rule */
:where(.soledit-doc-body, .soledit-editor) hr {
  border: none;
  border-top: 1px solid #e5e7eb;
  margin: 1.5rem 0;
}

/* Table */
:where(.soledit-doc-body, .soledit-editor) table {
  border-collapse: collapse;
  width: 100%;
}
:where(.soledit-doc-body, .soledit-editor) th,
:where(.soledit-doc-body, .soledit-editor) td {
  border: 1px solid #d1d5db;
  padding: 0.5rem;
  text-align: left;
}
:where(.soledit-doc-body, .soledit-editor) th {
  background: #f9fafb;
  font-weight: 600;
}

/* Callout */
.soledit-callout {
  padding: 1rem;
  border-radius: 6px;
  border-left: 4px solid;
}
.soledit-callout[data-callout-type="info"]    { border-color: #3b82f6; background: #eff6ff; }
.soledit-callout[data-callout-type="warning"] { border-color: #f59e0b; background: #fffbeb; }
.soledit-callout[data-callout-type="success"] { border-color: #10b981; background: #ecfdf5; }
.soledit-callout[data-callout-type="error"]   { border-color: #ef4444; background: #fef2f2; }

/* FAQ */
.soledit-faq {
  margin: 1rem 0;
}
.soledit-faq-add {
  margin-top: 0.5rem;
}
.soledit-faq-add-btn {
  padding: 0.35rem 0.6rem;
  font-size: 0.875rem;
  color: #6b7280;
  background: transparent;
  border: 1px dashed #d1d5db;
  border-radius: 6px;
  cursor: pointer;
}
.soledit-faq-add-btn:hover {
  color: #374151;
  border-color: #9ca3af;
  background: #f9fafb;
}
.soledit-faq-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0.75rem;
  padding-left: 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fafafa;
}
.soledit-faq-item-handle {
  flex-shrink: 0;
  width: 20px;
  height: 100%;
  min-height: 2.5rem;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  cursor: pointer;
  color: #9ca3af;
}
.soledit-faq-item-handle:hover {
  background: #e5e7eb;
  color: #6b7280;
}
.soledit-faq-item-handle::before {
  content: '⋮⋮';
  font-size: 0.75rem;
  letter-spacing: -0.2em;
  display: block;
  line-height: 1;
  padding-top: 0.5rem;
}
.soledit-faq-item.soledit-faq-item--selected {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}
.soledit-faq-item-content {
  flex: 1;
  min-width: 0;
}
.soledit-faq-item-row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.soledit-faq-item-row:last-child {
  margin-bottom: 0;
}
.soledit-faq-item-row:last-child {
  margin-bottom: 0;
}
.soledit-faq-item-label {
  flex-shrink: 0;
  font-weight: 600;
  color: #6b7280;
  width: 1.25em;
}
.soledit-faq-q,
.soledit-faq-a {
  flex: 1;
  min-width: 0;
  outline: none;
}
.soledit-faq-q[data-placeholder]:empty::before,
.soledit-faq-a[data-placeholder]:empty::before {
  content: attr(data-placeholder);
  color: #9ca3af;
}
/* Rendered output (details/summary) */
.soledit-faq details.soledit-faq-item {
  margin-bottom: 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fafafa;
}
.soledit-faq details.soledit-faq-item:last-child {
  margin-bottom: 0;
}
.soledit-faq summary.soledit-faq-q {
  list-style: none;
  font-weight: 600;
  padding: 0.75rem 1rem;
  cursor: pointer;
}
.soledit-faq summary.soledit-faq-q::-webkit-details-marker {
  display: none;
}
.soledit-faq .soledit-faq-a {
  padding: 0 1rem 0.75rem 1rem;
  margin: 0;
}

/* Two columns (v2 block library) — structural grid; themes refine spacing */
.soledit-two-columns {
  margin: 1rem 0;
}
.soledit-two-columns__grid {
  display: grid;
  gap: 1.25rem;
  align-items: start;
}
.soledit-two-columns--equal .soledit-two-columns__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.soledit-two-columns--sidebar-end .soledit-two-columns__grid {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}
.soledit-two-columns--sidebar-start .soledit-two-columns__grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}
.soledit-two-columns__col {
  min-width: 0;
}
@media (max-width: 640px) {
  .soledit-two-columns__grid {
    grid-template-columns: 1fr;
  }
}

/* Divider / spacer (v2 block library) */
.soledit-divider {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
}
.soledit-divider--line {
  height: 1px;
  margin: 1rem 0;
  background: #e5e7eb;
}
hr.soledit-divider--line {
  height: 1px;
  margin: 1rem 0;
  border: none;
  background: #e5e7eb;
}
.soledit-divider--space-sm {
  height: 0.75rem;
}
.soledit-divider--space-md {
  height: 1.5rem;
}
.soledit-divider--space-lg {
  height: 3rem;
}

/* Hero (classic block): background + optional scrim + inner content */
.soledit-hero {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  border-radius: 8px;
  background-color: #f3f4f6;
}
.soledit-hero--centered,
.soledit-hero--bg-image,
.soledit-hero--bg-video {
  text-align: center;
}
.soledit-hero--start-text {
  text-align: start;
}
.soledit-hero--end-text {
  text-align: end;
}
.soledit-hero--centered .soledit-hero__inner > .soledit-cta-buttons,
.soledit-hero--bg-image .soledit-hero__inner > .soledit-cta-buttons,
.soledit-hero--bg-video .soledit-hero__inner > .soledit-cta-buttons {
  justify-content: center;
}
.soledit-hero--start-text .soledit-hero__inner > .soledit-cta-buttons {
  justify-content: flex-start;
}
.soledit-hero--end-text .soledit-hero__inner > .soledit-cta-buttons {
  justify-content: flex-end;
}
.soledit-hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.soledit-hero__overlay[data-strength="none"] {
  display: none;
}
.soledit-hero__overlay[data-strength="light"] {
  background: rgb(0 0 0 / 0.25);
}
.soledit-hero__overlay[data-strength="medium"] {
  background: rgb(0 0 0 / 0.45);
}
.soledit-hero__overlay[data-strength="dark"] {
  background: rgb(0 0 0 / 0.65);
}
.soledit-hero__inner {
  position: relative;
  z-index: 1;
  padding: 3rem 2rem;
}
.soledit-hero .soledit-hero__placeholder--cta {
  padding: 0.5rem 1rem;
  border: 1px dashed #9ca3af;
  border-radius: 6px;
  background: rgb(255 255 255 / 0.85);
  color: #374151;
  cursor: pointer;
  font: inherit;
}

/* CTA */
.soledit-cta {
  text-align: center;
  padding: 1rem 0;
}
.soledit-cta-button {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  background: #2563eb;
  color: #fff;
}

/* Spacer */
.soledit-spacer {
  width: 100%;
  position: relative;
}
.soledit-spacer::after {
  content: '';
  display: block;
  border-top: 1px dashed #d1d5db;
  position: absolute;
  top: 50%;
  width: 100%;
}

/* Video embed */
.soledit-video-embed {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 8px;
}
.soledit-video-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section__inner {
  padding-block: 2rem;
  padding-inline: 1rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-contained="true"] .soledit-landing-section__inner {
  max-width: 56rem;
  margin-inline: auto;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-contained="false"] .soledit-landing-section__inner {
  max-width: none;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-padding-y="sm"] .soledit-landing-section__inner {
  padding-block: 1rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-padding-y="md"] .soledit-landing-section__inner {
  padding-block: 2rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-padding-y="lg"] .soledit-landing-section__inner {
  padding-block: 3.5rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-variant="muted"] {
  background: var(--soledit-landing-muted);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-variant="bordered"] {
  background: #fff;
  border-block: 1px solid var(--soledit-landing-border);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-variant="emphasis"] {
  background: linear-gradient(135deg, #312e81 0%, #4f46e5 55%, #6366f1 100%);
  color: #fafafa;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-variant="emphasis"] a {
  color: #e0e7ff;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-variant="emphasis"] .soledit-landing-heading__intro {
  color: rgb(255 255 255 / 0.85);
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero {
  position: relative;
  border-radius: var(--soledit-landing-radius);
  overflow: hidden;
  background-color: #27272a;
  background-size: cover;
  background-position: center;
  min-height: 14rem;
  color: #fafafa;
}
/* When exported HTML omits inline style, themes can style from data-hero-bg-* (editor usually inlines style). */
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero[data-hero-bg-fit='contain'] {
  background-size: contain;
  background-repeat: no-repeat;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero[data-min-height="half"] {
  min-height: 10rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero[data-min-height="default"] {
  min-height: 14rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero[data-min-height="tall"] {
  min-height: 22rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero__overlay[data-strength="none"] {
  display: none;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero__overlay[data-strength="light"] {
  background: rgb(0 0 0 / 0.25);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero__overlay[data-strength="medium"] {
  background: rgb(0 0 0 / 0.45);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero__overlay[data-strength="dark"] {
  background: rgb(0 0 0 / 0.65);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-hero__inner {
  position: relative;
  z-index: 1;
  padding: clamp(1rem, 3vw, 2rem);
  max-width: 40rem;
  margin-inline: auto;
  text-align: center;
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading {
  margin-block-end: 1rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading[data-align="center"] {
  text-align: center;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading[data-align="start"] {
  text-align: start;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading__intro {
  color: #52525b;
  font-size: 1rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading[data-align="center"] .soledit-landing-heading__intro {
  margin-inline: auto;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading[data-intro-width="narrow"] .soledit-landing-heading__intro {
  max-width: 28rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-heading[data-intro-width="medium"] .soledit-landing-heading__intro {
  max-width: 36rem;
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  margin-block: 1rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split[data-valign="start"] {
  align-items: flex-start;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split__text {
  flex: 1 1 16rem;
  min-width: min(100%, 16rem);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split__media {
  flex: 1 1 14rem;
  max-width: 100%;
  margin: 0;
  border-radius: var(--soledit-landing-radius);
  overflow: hidden;
  background: var(--soledit-landing-border);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split__media img {
  display: block;
  width: 100%;
  height: auto;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split__media[data-ratio="4-3"] img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split__media[data-ratio="16-9"] img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split__media[data-ratio="auto"] img {
  aspect-ratio: unset;
  object-fit: contain;
  max-height: 16rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split[data-media-position="start"] .soledit-landing-split__media {
  order: -1;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-split[data-media-position="end"] .soledit-landing-split__media {
  order: 1;
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-card-grid {
  display: grid;
  gap: 1rem;
  margin-block: 1rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-card-grid[data-columns="2"] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-card-grid[data-columns="3"] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-card {
  border-radius: var(--soledit-landing-radius);
  padding: 1rem;
  background: #fff;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-card-grid[data-card-style="flat"] .soledit-landing-card {
  border: 1px solid var(--soledit-landing-border);
  box-shadow: none;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-card-grid[data-card-style="elevated"] .soledit-landing-card {
  border: 1px solid rgb(0 0 0 / 0.06);
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.05), 0 4px 12px rgb(0 0 0 / 0.06);
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list {
  list-style: none;
  margin: 1rem 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list[data-columns="1"] {
  grid-template-columns: 1fr;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list[data-columns="2"] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list__item {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list[data-style="card"] .soledit-landing-highlight-list__item {
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  background: #fff;
  border: 1px solid var(--soledit-landing-border);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list__bullet {
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  margin-block-start: 0.45em;
  border-radius: 50%;
  background: var(--soledit-landing-accent);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list[data-style="compact"] .soledit-landing-highlight-list__bullet {
  background: #71717a;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list__text {
  flex: 1;
  min-width: 0;
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-highlight-list__text p {
  margin: 0;
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-columns {
  display: grid;
  gap: 1rem;
  margin-block: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-columns[data-columns="2"] {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-columns__col {
  padding: 0.85rem 1rem;
  border-radius: var(--soledit-landing-radius);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-columns[data-tone="neutral"] .soledit-landing-columns__col {
  background: #fafafa;
  border: 1px solid var(--soledit-landing-border);
}
:where(.soledit-doc-body, .soledit-editor) .soledit-landing-columns[data-tone="tinted"] .soledit-landing-columns__col {
  background: var(--soledit-landing-accent-soft);
  border: 1px solid #c7d2fe;
}

:where(.soledit-doc-body, .soledit-editor) .soledit-landing-section[data-variant="emphasis"] .soledit-cta[data-variant="secondary"] .soledit-cta-button {
  background: rgb(255 255 255 / 0.12);
  color: #fff;
  border-color: rgb(255 255 255 / 0.35);
}

/* Hide placeholder buttons on published pages (defense-in-depth; SSG already suppresses them).
   Scoped out of ProseMirror so the editor keeps them clickable. */
.soledit-doc-body:not(:has(.ProseMirror)) .soledit-card-grid__placeholder {
  display: none;
}

/* ===== blocks (v2 Block Library structural CSS) ===== */
/*
 * `blocks` structural CSS.
 *
 * Phase 1: minimal scaffolding for Section / Hero / RichText. Themes provide
 * design tokens (colors, fonts, spacing scale) under their own scope; this
 * file only contains structural / layout rules and uses CSS custom property
 * fallbacks so themes can override.
 */

/* -------------------------------------------------------------------------- */
/* Design tokens (defaults — themes override via :root or .soledit-content)   */
/* -------------------------------------------------------------------------- */

:root {
  --soledit-font-display: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --soledit-font-body: var(--soledit-font-display);
  --soledit-text: #0f172a;
  --soledit-text-muted: #475569;
  --soledit-link: #2563eb;
  --soledit-link-hover: #1d4ed8;
  --soledit-radius-lg: 0.75rem;
}

/* -------------------------------------------------------------------------- */
/* Section                                                                    */
/* -------------------------------------------------------------------------- */

.soledit-section {
  display: block;
  width: 100%;
  background: var(--soledit-section-bg, transparent);
  color: var(--soledit-section-fg, inherit);
  font-family: var(--soledit-font-body);
}
.soledit-section--tone-alt {
  --soledit-section-bg: var(--soledit-section-bg-alt, #f1f5f9);
  --soledit-section-fg: var(--soledit-section-fg-alt, #0f172a);
}
.soledit-section--tone-invert {
  --soledit-section-bg: var(--soledit-section-bg-invert, #0f172a);
  --soledit-section-fg: var(--soledit-section-fg-invert, #f8fafc);
  --soledit-prose-muted: #94a3b8;
  --soledit-caption-color: #cbd5e1;
  --soledit-eyebrow-color: #94a3b8;
}
.soledit-section__inner {
  display: flow-root;
}
.soledit-section--bordered {
  border-block: 1px solid var(--soledit-section-border, currentColor);
}
.soledit-section--padding-none .soledit-section__inner {
  padding-block: 0;
}
.soledit-section--padding-sm .soledit-section__inner {
  padding-block: var(--soledit-section-py-sm, 1.5rem);
}
.soledit-section--padding-md .soledit-section__inner {
  padding-block: var(--soledit-section-py-md, 3rem);
}
.soledit-section--padding-lg .soledit-section__inner {
  padding-block: var(--soledit-section-py-lg, 5rem);
}
.soledit-section--contained .soledit-section__inner {
  max-width: var(--soledit-content-max-width, 72rem);
  margin-inline: auto;
  padding-inline: var(--soledit-section-px, 1.25rem);
}
.soledit-section--full .soledit-section__inner {
  padding-inline: 0;
}

/* -------------------------------------------------------------------------- */
/* Hero                                                                       */
/* -------------------------------------------------------------------------- */

.soledit-hero {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  overflow: hidden;
  font-family: var(--soledit-font-display);
  color: var(--soledit-hero-fg, var(--soledit-text));
}
.soledit-hero--bg-image,
.soledit-hero--bg-video {
  color: var(--soledit-hero-on-media-fg, #f8fafc);
  --soledit-hero-fg: var(--soledit-hero-on-media-fg, #f8fafc);
}
.soledit-hero--bg-image .soledit-hero__heading,
.soledit-hero--bg-video .soledit-hero__heading {
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}
.soledit-hero--bg-image .soledit-hero__subheading,
.soledit-hero--bg-video .soledit-hero__subheading {
  opacity: 0.95;
  max-width: 40rem;
}
.soledit-hero__body p,
.soledit-hero__body .soledit-hero__heading,
.soledit-hero__body .soledit-hero__subheading {
  color: inherit;
}
.soledit-hero__body p {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
  line-height: 1.5;
}
.soledit-hero--height-screen {
  min-height: 100vh;
}
.soledit-hero--height-half-screen {
  min-height: 50vh;
}
.soledit-hero--height-auto {
  min-height: auto;
}
.soledit-hero--valign-top {
  align-items: flex-start;
}
.soledit-hero--valign-center {
  align-items: center;
}
.soledit-hero--valign-bottom {
  align-items: flex-end;
}
.soledit-hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--soledit-hero-overlay-color, rgba(0, 0, 0, 0));
}
.soledit-bg-overlay--none { background-color: transparent; }
.soledit-bg-overlay--light { background-color: rgba(0, 0, 0, 0.2); }
.soledit-bg-overlay--medium { background-color: rgba(0, 0, 0, 0.4); }
.soledit-bg-overlay--dark { background-color: rgba(0, 0, 0, 0.6); }
.soledit-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: var(--soledit-hero-padding, 2rem);
}
.soledit-hero--contained .soledit-hero__inner {
  max-width: var(--soledit-content-max-width, 72rem);
  margin-inline: auto;
}
.soledit-hero__eyebrow {
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 0.5rem;
}
.soledit-hero__heading {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 0.75rem;
}
.soledit-hero__subheading {
  font-size: 1.125rem;
  margin: 0 0 1.5rem;
}
.soledit-hero--centered,
.soledit-hero--bg-image,
.soledit-hero--bg-video {
  text-align: center;
}
.soledit-hero--start-text {
  text-align: start;
}
.soledit-hero--end-text {
  text-align: end;
}
.soledit-hero--centered .soledit-hero__subheading,
.soledit-hero--bg-image .soledit-hero__subheading,
.soledit-hero--bg-video .soledit-hero__subheading {
  margin-inline: auto;
}
/* Flex rows ignore text-align — match copy alignment per hero variant. */
.soledit-hero--centered .soledit-hero__inner > .soledit-cta-buttons,
.soledit-hero--bg-image .soledit-hero__inner > .soledit-cta-buttons,
.soledit-hero--bg-video .soledit-hero__inner > .soledit-cta-buttons {
  justify-content: center;
}
.soledit-hero--start-text .soledit-hero__inner > .soledit-cta-buttons {
  justify-content: flex-start;
}
.soledit-hero--end-text .soledit-hero__inner > .soledit-cta-buttons {
  justify-content: flex-end;
}

/* -------------------------------------------------------------------------- */
/* RichText                                                                   */
/* -------------------------------------------------------------------------- */

.soledit-rich-text {
  display: block;
  font-family: var(--soledit-font-body);
  color: var(--soledit-text);
  font-size: 1.05rem;
  line-height: 1.65;
}
.soledit-rich-text p {
  margin: 0 0 1em;
}
.soledit-rich-text p:last-child {
  margin-bottom: 0;
}
.soledit-rich-text h2 {
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 700;
  line-height: 1.25;
  margin: 1.5em 0 0.65em;
  color: var(--soledit-text);
}
.soledit-rich-text h3 {
  font-size: 1.2rem;
  font-weight: 650;
  margin: 1.35em 0 0.5em;
  color: var(--soledit-text);
}
.soledit-rich-text h4 {
  font-size: 1.05rem;
  font-weight: 650;
  margin: 1.2em 0 0.45em;
  color: var(--soledit-text);
}
.soledit-rich-text a {
  color: var(--soledit-link);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.soledit-rich-text a:hover {
  color: var(--soledit-link-hover);
}
.soledit-rich-text ul,
.soledit-rich-text ol {
  margin: 0 0 1em;
  padding-inline-start: 1.35em;
}
.soledit-rich-text li {
  margin-block: 0.35em;
}
.soledit-rich-text blockquote {
  margin: 1.25em 0;
  padding-inline-start: 1rem;
  border-inline-start: 3px solid var(--soledit-blockquote-border, #cbd5e1);
  color: var(--soledit-text-muted);
}
.soledit-rich-text hr {
  border: none;
  border-top: 1px solid var(--soledit-hr-color, #e2e8f0);
  margin: 2rem 0;
}

/* Inverted sections: brighten links */
.soledit-section--tone-invert .soledit-rich-text a {
  color: #93c5fd;
}
.soledit-section--tone-invert .soledit-rich-text a:hover {
  color: #bfdbfe;
}

/* -------------------------------------------------------------------------- */
/* CTA buttons                                                                */
/* -------------------------------------------------------------------------- */

.soledit-cta-buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.soledit-cta-button {
  display: inline-flex;
  align-items: center;
  padding: 0.625rem 1.125rem;
  border-radius: var(--soledit-cta-radius, 0.5rem);
  font-weight: 600;
  text-decoration: none;
}
.soledit-cta-button--primary {
  background: var(--soledit-cta-primary-bg, #111827);
  color: var(--soledit-cta-primary-color, #fff);
}
.soledit-cta-button--secondary {
  background: var(--soledit-cta-secondary-bg, #e5e7eb);
  color: var(--soledit-cta-secondary-color, #111827);
}
.soledit-cta-button--ghost {
  background: transparent;
  color: var(--soledit-cta-ghost-color, currentColor);
  border: 1px solid currentColor;
}

/* -------------------------------------------------------------------------- */
/* Media slot                                                                 */
/* -------------------------------------------------------------------------- */

.soledit-media {
  display: block;
  margin: 0;
  overflow: hidden;
}
.soledit-media__img {
  display: block;
  width: 100%;
  height: 100%;
}
.soledit-media__iframe,
.soledit-media__video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
}

/* -------------------------------------------------------------------------- */
/* Callout                                                                    */
/* -------------------------------------------------------------------------- */

.soledit-callout {
  display: flex;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-radius: var(--soledit-callout-radius, 0.5rem);
  border-inline-start: 4px solid var(--soledit-callout-accent, currentColor);
  background: var(--soledit-callout-bg, #f3f4f6);
  margin-block: 1rem;
}
.soledit-callout--info { --soledit-callout-bg: #eff6ff; --soledit-callout-accent: #2563eb; }
.soledit-callout--tip { --soledit-callout-bg: #ecfdf5; --soledit-callout-accent: #10b981; }
.soledit-callout--warning { --soledit-callout-bg: #fffbeb; --soledit-callout-accent: #d97706; }
.soledit-callout--danger { --soledit-callout-bg: #fef2f2; --soledit-callout-accent: #dc2626; }
.soledit-callout__icon {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  background: var(--soledit-callout-accent, currentColor);
  border-radius: 999px;
  margin-top: 0.125rem;
}
.soledit-callout__body {
  flex: 1;
  min-width: 0;
}
.soledit-callout__title {
  font-weight: 600;
  margin: 0 0 0.25rem;
}

/* -------------------------------------------------------------------------- */
/* Section heading                                                            */
/* -------------------------------------------------------------------------- */

.soledit-section-heading {
  margin-block: 1.5rem 1rem;
}
.soledit-section-heading--align-center {
  text-align: center;
}
.soledit-section-heading__eyebrow {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--soledit-eyebrow-color, #6b7280);
  margin: 0 0 0.5rem;
}
/** Title styling targets the heading element directly so the editor's
 *  Tiptap-rendered `<h2>` and the SSG-rendered `<h2>` use the same CSS path
 *  (no `__title` class — see WYSIWYG parity rule, docs/BLOCK-LIBRARY.md §6). */
.soledit-section-heading > h2,
.soledit-section-heading > h3 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  margin: 0 0 0.5rem;
}
.soledit-section-heading__intro {
  color: var(--soledit-prose-muted, #4b5563);
}
.soledit-section-heading--align-center .soledit-section-heading__intro {
  margin-inline: auto;
}
.soledit-section-heading--intro-narrow .soledit-section-heading__intro { max-width: 28rem; }
.soledit-section-heading--intro-medium .soledit-section-heading__intro { max-width: 36rem; }
.soledit-section-heading--intro-wide .soledit-section-heading__intro { max-width: 48rem; }

/* -------------------------------------------------------------------------- */
/* Image block                                                                */
/* -------------------------------------------------------------------------- */

.soledit-image {
  display: block;
  margin: 1rem 0;
  overflow: hidden;
}
.soledit-image--full-width { width: 100%; }
.soledit-image--centered-narrow { width: min(100%, 32rem); margin-inline: auto; }
.soledit-image--float-start { float: inline-start; max-width: 40%; margin-inline-end: 1rem; }
.soledit-image--float-end { float: inline-end; max-width: 40%; margin-inline-start: 1rem; }
.soledit-image__img {
  display: block;
  width: 100%;
  height: 100%;
}
.soledit-image__placeholder {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 8rem;
  background: var(--soledit-placeholder-bg, #e5e7eb);
  color: var(--soledit-placeholder-color, #6b7280);
  font-size: 0.85rem;
}
.soledit-image__caption {
  font-size: 0.85rem;
  color: var(--soledit-caption-color, #6b7280);
  padding: 0.5rem 0;
}
.soledit-image__caption--center { text-align: center; }

/* -------------------------------------------------------------------------- */
/* Card grid                                                                  */
/* -------------------------------------------------------------------------- */

.soledit-card-grid {
  display: grid;
  gap: 1.25rem;
  margin: 1.5rem 0;
}
.soledit-card-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.soledit-card-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.soledit-card-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 48rem) {
  .soledit-card-grid--cols-2,
  .soledit-card-grid--cols-3,
  .soledit-card-grid--cols-4 {
    grid-template-columns: 1fr;
  }
}
.soledit-card-grid--style-flat .soledit-card-grid__card {
  background: transparent;
}
.soledit-card-grid--style-raised .soledit-card-grid__card {
  background: var(--soledit-card-bg, #fff);
  box-shadow: var(--soledit-card-shadow, 0 4px 24px rgba(0, 0, 0, 0.08));
  border-radius: var(--soledit-card-radius, 0.5rem);
}
.soledit-card-grid--style-bordered .soledit-card-grid__card {
  border: 1px solid var(--soledit-card-border, #e5e7eb);
  border-radius: var(--soledit-card-radius, 0.5rem);
}
.soledit-card-grid--style-ghost .soledit-card-grid__card {
  background: transparent;
  border: 1px dashed var(--soledit-card-border, #d1d5db);
  border-radius: var(--soledit-card-radius, 0.5rem);
}
.soledit-card-grid__card {
  padding: 1rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.soledit-card-grid--media-start .soledit-card-grid__card {
  flex-direction: row;
  align-items: flex-start;
}
.soledit-card-grid--media-start .soledit-card-grid__media {
  flex: 0 0 40%;
  max-width: 40%;
}
.soledit-card-grid--align-center .soledit-card-grid__text-bundle,
.soledit-card-grid--align-center .soledit-card-grid__text {
  text-align: center;
}
.soledit-card-grid__media {
  width: 100%;
  overflow: hidden;
  border-radius: var(--soledit-card-media-radius, 0.375rem);
}
.soledit-card-grid__media--aspect-16-9 { aspect-ratio: 16 / 9; }
.soledit-card-grid__media--aspect-4-3 { aspect-ratio: 4 / 3; }
.soledit-card-grid__media--aspect-1-1 { aspect-ratio: 1 / 1; }
.soledit-card-grid__media--aspect-3-4 { aspect-ratio: 3 / 4; }
.soledit-card-grid__media .soledit-media,
.soledit-card-grid__media .soledit-media__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.soledit-card-grid__media--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--soledit-placeholder-bg, color-mix(in srgb, var(--soledit-prose-muted, #6b7280) 12%, transparent));
  border: 1px dashed var(--soledit-placeholder-border, color-mix(in srgb, var(--soledit-prose-muted, #6b7280) 35%, transparent));
}
.soledit-card-grid__placeholder {
  margin: 0;
  padding: 0.5rem 0.75rem;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--soledit-placeholder-fg, var(--soledit-prose-muted, #4b5563));
  background: var(--soledit-placeholder-btn-bg, color-mix(in srgb, var(--soledit-card-bg, #fff) 92%, transparent));
  border: 1px solid var(--soledit-placeholder-btn-border, #d1d5db);
  border-radius: 0.375rem;
  cursor: pointer;
}
.soledit-card-grid__placeholder:hover {
  border-color: var(--soledit-placeholder-btn-border-hover, #9ca3af);
}
.soledit-card-grid__cta--empty {
  margin-top: 0.25rem;
}
.soledit-card-grid__eyebrow,
.soledit-card-grid__icon-placeholder {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--soledit-prose-muted, #6b7280);
  margin: 0;
}
.soledit-card-grid__heading {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}
.soledit-card-grid__body {
  margin: 0;
  color: var(--soledit-prose-body, #374151);
  font-size: 0.95rem;
  line-height: 1.5;
}
.soledit-card-grid__cta {
  margin-top: 0.25rem;
}
.soledit-card-grid__text-bundle {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
}
.soledit-card-grid__text {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
}

/* -------------------------------------------------------------------------- */
/* FAQ / accordion                                                            */
/* -------------------------------------------------------------------------- */

.soledit-faq {
  display: block;
  width: 100%;
  margin: 1rem 0;
}
.soledit-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.soledit-faq__item {
  border: 1px solid var(--soledit-faq-border, #e2e8f0);
  border-radius: var(--soledit-radius-lg);
  background: var(--soledit-faq-bg, #fff);
}
.soledit-faq__question {
  font-weight: 600;
  padding: 0.75rem 1rem 0.5rem;
}
.soledit-faq__question-inner {
  margin: 0;
  font-size: 1rem;
}
.soledit-faq__answer {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--soledit-faq-border-inner, #f1f5f9);
}
.soledit-faq__answer.soledit-prose > :first-child {
  margin-top: 0.75rem;
}

/* -------------------------------------------------------------------------- */
/* Two columns (editorial)                                                   */
/* -------------------------------------------------------------------------- */

.soledit-two-columns {
  display: block;
  width: 100%;
  margin: 1rem 0;
}
.soledit-two-columns__grid {
  display: grid;
  gap: var(--soledit-two-columns-gap, 1.5rem);
  align-items: start;
}
.soledit-two-columns--equal .soledit-two-columns__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.soledit-two-columns--sidebar-end .soledit-two-columns__grid {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}
.soledit-two-columns--sidebar-start .soledit-two-columns__grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}
.soledit-two-columns__col {
  min-width: 0;
}
@media (max-width: 640px) {
  .soledit-two-columns__grid {
    grid-template-columns: 1fr;
  }
}

/* -------------------------------------------------------------------------- */
/* Divider / spacer                                                           */
/* -------------------------------------------------------------------------- */

.soledit-divider {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
}
.soledit-divider--line {
  height: 1px;
  margin: 1rem 0;
  background: var(--soledit-divider-line, #e2e8f0);
}
hr.soledit-divider--line {
  height: 1px;
  margin: 1rem 0;
  border: none;
  background: var(--soledit-divider-line, #e2e8f0);
}
.soledit-divider--space-sm {
  height: 0.75rem;
}
.soledit-divider--space-md {
  height: 1.5rem;
}
.soledit-divider--space-lg {
  height: 3rem;
}

/* -------------------------------------------------------------------------- */
/* Content table (v2 wrapper + caption)                                       */
/* -------------------------------------------------------------------------- */

.soledit-content-table {
  display: block;
  width: 100%;
  margin: 1rem 0;
  overflow-x: auto;
}
.soledit-content-table .soledit-table__caption {
  font-size: 0.875rem;
  color: var(--soledit-caption-color, var(--soledit-text-muted));
  margin-block-end: 0.35rem;
}
.soledit-content-table .soledit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.soledit-content-table--striped .soledit-table tbody tr:nth-child(even) {
  background: var(--soledit-table-stripe, rgb(248 250 252));
}
.soledit-content-table .soledit-table th,
.soledit-content-table .soledit-table td {
  border: 1px solid var(--soledit-table-border, #e2e8f0);
  padding: 0.5rem 0.65rem;
  vertical-align: top;
}

/* -------------------------------------------------------------------------- */
/* Quote / pullquote (v2)                                                     */
/* -------------------------------------------------------------------------- */

.soledit-quote-block {
  margin: 1.25rem 0;
  padding: 0;
  border: none;
}
.soledit-quote-block--standard {
  padding-inline-start: 1rem;
  border-inline-start: 3px solid var(--soledit-quote-accent, #cbd5e1);
}
.soledit-quote-block--pullquote {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
}
.soledit-quote-block__quote.soledit-prose > :first-child {
  margin-top: 0;
}
.soledit-quote-block__quote.soledit-prose > :last-child {
  margin-bottom: 0;
}
.soledit-quote-block__attribution {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  color: var(--soledit-text-muted);
}

/* -------------------------------------------------------------------------- */
/* Feature split (v2)                                                         */
/* -------------------------------------------------------------------------- */

.soledit-split {
  display: block;
  width: 100%;
  margin: 1.5rem 0;
}
.soledit-split__row {
  display: grid;
  gap: 1.25rem;
  align-items: center;
}
.soledit-split--50-50 .soledit-split__row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.soledit-split--60-40 .soledit-split__row {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}
.soledit-split--40-60 .soledit-split__row {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}
.soledit-split__stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.soledit-split__text-inner > .soledit-split__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--soledit-eyebrow-color, var(--soledit-text-muted));
}
.soledit-split__heading {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  line-height: 1.25;
}
.soledit-split__body.soledit-prose > :first-child {
  margin-top: 0;
}
.soledit-split__body.soledit-prose > :last-child {
  margin-bottom: 0;
}
.soledit-split__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}
.soledit-split__media {
  min-width: 0;
}
.soledit-split__media--aspect-16-9 :where(img, video, iframe) {
  aspect-ratio: 16 / 9;
}
.soledit-split__media--aspect-4-3 :where(img, video, iframe) {
  aspect-ratio: 4 / 3;
}
.soledit-split__media--aspect-1-1 :where(img, video, iframe) {
  aspect-ratio: 1 / 1;
}
.soledit-split__media--aspect-3-4 :where(img, video, iframe) {
  aspect-ratio: 3 / 4;
}
.soledit-split__media :where(img, video, iframe) {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 640px) {
  .soledit-split__row {
    grid-template-columns: 1fr !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Highlight list (v2)                                                        */
/* -------------------------------------------------------------------------- */

.soledit-highlight-list {
  display: grid;
  gap: 0.75rem;
  margin: 1.25rem 0;
  width: 100%;
}
.soledit-highlight-list--cols-1 {
  grid-template-columns: 1fr;
}
.soledit-highlight-list--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.soledit-highlight-list--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 720px) {
  .soledit-highlight-list--cols-2,
  .soledit-highlight-list--cols-3 {
    grid-template-columns: 1fr;
  }
}
.soledit-highlight-list__item-inner {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
}
.soledit-highlight-list__glyph {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-block-start: 0.15em;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--soledit-highlight-glyph-fg, var(--soledit-text-muted));
}
.soledit-highlight-list--numbered {
  counter-reset: soledit-hl-step;
}
.soledit-highlight-list--numbered .soledit-highlight-list__item {
  counter-increment: soledit-hl-step;
}
.soledit-highlight-list--numbered .soledit-highlight-list__glyph::before {
  content: counter(soledit-hl-step);
}
.soledit-highlight-list--checklist .soledit-highlight-list__glyph::before {
  content: '';
  display: block;
  width: 0.55rem;
  height: 0.35rem;
  border: solid var(--soledit-highlight-check, #22c55e);
  border-width: 0 0 2px 2px;
  transform: rotate(-45deg);
  margin-top: 0.25rem;
}
.soledit-highlight-list--icon-vertical .soledit-highlight-list__item[data-icon] .soledit-highlight-list__glyph::before,
.soledit-highlight-list--icon-grid .soledit-highlight-list__item[data-icon] .soledit-highlight-list__glyph::before {
  content: '◆';
  font-size: 0.65rem;
  opacity: 0.85;
}
.soledit-highlight-list__heading {
  font-weight: 600;
  line-height: 1.35;
}
.soledit-highlight-list__body {
  margin-top: 0.25rem;
  font-size: 0.9375rem;
  color: var(--soledit-text-muted);
}

/* -------------------------------------------------------------------------- */
/* CTA banner (v2)                                                            */
/* -------------------------------------------------------------------------- */

.soledit-cta-banner {
  position: relative;
  overflow: hidden;
  border-radius: var(--soledit-radius-lg);
  background: var(--soledit-cta-banner-bg, #f8fafc);
  color: var(--soledit-cta-banner-fg, var(--soledit-text));
  margin: 1.5rem 0;
}
.soledit-cta-banner--tone-alt {
  --soledit-cta-banner-bg: #f1f5f9;
}
.soledit-cta-banner--tone-invert,
.soledit-cta-banner--bg-image {
  --soledit-cta-banner-bg: #0f172a;
  --soledit-cta-banner-fg: #f8fafc;
}
.soledit-cta-banner__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.soledit-cta-banner__inner {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: var(--soledit-cta-banner-padding, 2rem);
}
.soledit-cta-banner--centered .soledit-cta-banner__inner,
.soledit-cta-banner--bg-image .soledit-cta-banner__inner {
  flex-direction: column;
  text-align: center;
}
.soledit-cta-banner__heading {
  margin: 0;
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.2;
}
.soledit-cta-banner__subtext {
  margin: 0.5rem 0 0;
  color: var(--soledit-cta-banner-muted, var(--soledit-text-muted));
}
.soledit-cta-banner--tone-invert .soledit-cta-banner__subtext,
.soledit-cta-banner--bg-image .soledit-cta-banner__subtext {
  --soledit-cta-banner-muted: #cbd5e1;
}
.soledit-cta-banner__buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}
@media (max-width: 640px) {
  .soledit-cta-banner__inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* -------------------------------------------------------------------------- */
/* Testimonial (v2)                                                           */
/* -------------------------------------------------------------------------- */

.soledit-testimonial {
  margin: 1.5rem 0;
}
.soledit-testimonial__items {
  display: grid;
  gap: 1rem;
}
.soledit-testimonial--card-grid .soledit-testimonial__items {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.soledit-testimonial__item {
  margin: 0;
  padding: 1.25rem;
  border: 1px solid var(--soledit-testimonial-border, #e2e8f0);
  border-radius: var(--soledit-radius-lg);
  background: var(--soledit-testimonial-bg, #fff);
}
.soledit-testimonial--single-centered .soledit-testimonial__item {
  text-align: center;
  max-width: 48rem;
  margin-inline: auto;
}
.soledit-testimonial__avatar {
  width: 4rem;
  height: 4rem;
  flex-shrink: 0;
  margin-block-end: 0.75rem;
  border-radius: 999px;
  overflow: hidden;
}
.soledit-testimonial--single-centered .soledit-testimonial__avatar {
  width: 5rem;
  height: 5rem;
  margin-inline: auto;
}
.soledit-testimonial--card-grid .soledit-testimonial__avatar {
  width: 3.5rem;
  height: 3.5rem;
}
/* Fill the circular clip — inner figure must match the box or wide images look like a dome. */
.soledit-testimonial__avatar .soledit-media {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}
.soledit-testimonial__avatar :where(img) {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.soledit-testimonial__avatar--empty {
  display: none;
}
.soledit-testimonial__rating {
  margin-block-end: 0.75rem;
  color: var(--soledit-testimonial-star, #eab308);
  letter-spacing: 0.08em;
  text-align: center;
}
.soledit-testimonial__quote {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.55;
}
.soledit-testimonial__author-name {
  margin-top: 0.9rem;
  font-weight: 700;
}
.soledit-testimonial__author-title {
  margin-top: 0.15rem;
  font-size: 0.875rem;
  color: var(--soledit-text-muted);
}
@media (max-width: 720px) {
  .soledit-testimonial--card-grid .soledit-testimonial__items {
    grid-template-columns: 1fr;
  }
}

/* -------------------------------------------------------------------------- */
/* Code, video, audio, embed (v2)                                             */
/* -------------------------------------------------------------------------- */

.soledit-code-block,
.soledit-video,
.soledit-audio,
.soledit-embed {
  margin: 1.5rem 0;
}
.soledit-code-block {
  overflow: hidden;
  border: 1px solid var(--soledit-code-border, #1e293b);
  border-radius: var(--soledit-radius-lg);
  background: var(--soledit-code-bg, #0f172a);
  color: var(--soledit-code-fg, #e2e8f0);
}
.soledit-code-block__header {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 0.8rem;
  color: #cbd5e1;
}
.soledit-code-block__pre {
  margin: 0;
  padding: 1rem;
  overflow: auto;
  font: 0.9rem/1.6 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.soledit-video--centered-narrow,
.soledit-embed {
  max-width: 48rem;
  margin-inline: auto;
}
.soledit-video__frame,
.soledit-embed__frame {
  position: relative;
  overflow: hidden;
  border-radius: var(--soledit-radius-lg);
  background: #0f172a;
}
.soledit-video--aspect-16-9 .soledit-video__frame,
.soledit-embed--aspect-16-9 .soledit-embed__frame { aspect-ratio: 16 / 9; }
.soledit-video--aspect-4-3 .soledit-video__frame,
.soledit-embed--aspect-4-3 .soledit-embed__frame { aspect-ratio: 4 / 3; }
.soledit-video--aspect-1-1 .soledit-video__frame,
.soledit-embed--aspect-1-1 .soledit-embed__frame { aspect-ratio: 1 / 1; }
.soledit-video__iframe,
.soledit-video__video,
.soledit-embed__iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.soledit-video__placeholder,
.soledit-embed__placeholder {
  display: grid;
  min-height: 12rem;
  place-items: center;
  color: #cbd5e1;
}
.soledit-video__caption,
.soledit-audio__caption,
.soledit-embed__caption {
  margin-top: 0.5rem;
  color: var(--soledit-caption-color, var(--soledit-text-muted));
  font-size: 0.875rem;
}
.soledit-audio {
  border: 1px solid var(--soledit-audio-border, #e2e8f0);
  border-radius: var(--soledit-radius-lg);
  background: var(--soledit-audio-bg, #fff);
  padding: 1rem;
}
.soledit-audio--minimal {
  border-color: transparent;
  background: transparent;
  padding-inline: 0;
}
.soledit-audio__meta {
  display: grid;
  gap: 0.125rem;
  margin-bottom: 0.75rem;
}
.soledit-audio__title {
  font-weight: 700;
  color: var(--soledit-heading-color, var(--soledit-text));
}
.soledit-audio__artist {
  color: var(--soledit-text-muted);
  font-size: 0.925rem;
}
.soledit-audio__controls {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}
.soledit-audio__player {
  width: 100%;
  min-width: 16rem;
  flex: 1 1 20rem;
}
.soledit-audio__placeholder {
  width: 100%;
  min-height: 3rem;
  display: grid;
  place-items: center;
  border: 1px dashed var(--soledit-placeholder-border, #cbd5e1);
  border-radius: var(--soledit-radius-md);
  color: var(--soledit-placeholder-fg, var(--soledit-text-muted));
}
.soledit-audio__download {
  white-space: nowrap;
  font-weight: 600;
}
.soledit-audio__transcript {
  margin-top: 0.75rem;
  color: var(--soledit-text);
}
.soledit-audio__transcript-label {
  cursor: pointer;
  font-weight: 600;
}
.soledit-audio__transcript-body {
  margin-top: 0.5rem;
  color: var(--soledit-text-muted);
  white-space: pre-wrap;
}

/* -------------------------------------------------------------------------- */
/* Stats, pricing table, team grid (v2)                                       */
/* -------------------------------------------------------------------------- */

.soledit-pricing-table,
.soledit-team-grid {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0;
}
.soledit-team-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.soledit-team-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.soledit-team-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Stats: `variant` switches layout; `dividers` toggles card chrome + separators */
.soledit-stats {
  margin: 1.5rem 0;
  gap: 1rem;
}

/* Grid — multi-row track layout (default “block” stats) */
.soledit-stats--grid {
  display: grid;
  align-items: stretch;
}
.soledit-stats--grid.soledit-stats--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.soledit-stats--grid.soledit-stats--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.soledit-stats--grid.soledit-stats--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Row — horizontal strip: flex first, wraps when narrow */
.soledit-stats--row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
.soledit-stats--row.soledit-stats--cols-2 > .soledit-stats__item {
  flex: 1 1 calc((100% - 1rem) / 2);
  min-width: min(100%, 10rem);
  max-width: 100%;
}
.soledit-stats--row.soledit-stats--cols-3 > .soledit-stats__item {
  flex: 1 1 calc((100% - 2rem) / 3);
  min-width: min(100%, 8rem);
  max-width: 100%;
}
.soledit-stats--row.soledit-stats--cols-4 > .soledit-stats__item {
  flex: 1 1 calc((100% - 3rem) / 4);
  min-width: min(100%, 6.5rem);
  max-width: 100%;
}

.soledit-stats__item {
  border-radius: var(--soledit-radius-lg);
  padding: 1.25rem;
  min-width: 0;
}

/* Dividers off — open layout (gap only; no card boxes) */
.soledit-stats:not(.soledit-stats--dividers) .soledit-stats__item {
  border: 1px solid transparent;
  background: transparent;
  box-shadow: none;
}

/* Dividers on — card chrome */
.soledit-stats--dividers .soledit-stats__item {
  border: 1px solid var(--soledit-card-border, #e2e8f0);
  background: var(--soledit-card-bg, #fff);
}

/* Row + dividers: vertical rules between items (first item flush start) */
.soledit-stats--row.soledit-stats--dividers {
  gap: 0;
  padding-block: 0.25rem;
}
.soledit-stats--row.soledit-stats--dividers > .soledit-stats__item {
  border-radius: 0;
  border-block: 1px solid var(--soledit-card-border, #e2e8f0);
  border-inline: none;
  padding-inline: 1.25rem;
  padding-block: 1rem;
}
.soledit-stats--row.soledit-stats--dividers > .soledit-stats__item:first-child {
  border-inline-start: 1px solid var(--soledit-card-border, #e2e8f0);
  border-start-start-radius: var(--soledit-radius-lg);
  border-end-start-radius: var(--soledit-radius-lg);
}
.soledit-stats--row.soledit-stats--dividers > .soledit-stats__item:last-child {
  border-inline-end: 1px solid var(--soledit-card-border, #e2e8f0);
  border-start-end-radius: var(--soledit-radius-lg);
  border-end-end-radius: var(--soledit-radius-lg);
}
.soledit-stats--row.soledit-stats--dividers > .soledit-stats__item:not(:first-child) {
  border-inline-start: 1px solid var(--soledit-stats-divider, rgba(148, 163, 184, 0.55));
}

.soledit-pricing-table__tier,
.soledit-team-grid__member {
  border: 1px solid var(--soledit-card-border, #e2e8f0);
  border-radius: var(--soledit-radius-lg);
  background: var(--soledit-card-bg, #fff);
  padding: 1.25rem;
}
.soledit-stats__value {
  font-weight: 800;
  line-height: 1;
}
.soledit-stats--row .soledit-stats__value {
  font-size: clamp(2rem, 5vw, 3.25rem);
}
.soledit-stats--grid .soledit-stats__value {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
}
.soledit-stats__label,
.soledit-team-grid__name,
.soledit-pricing-table__name {
  margin-top: 0.5rem;
  font-weight: 700;
}
.soledit-stats__sublabel,
.soledit-team-grid__role,
.soledit-team-grid__bio,
.soledit-pricing-table__description,
.soledit-pricing-table__price-alt {
  margin-top: 0.35rem;
  color: var(--soledit-text-muted);
  font-size: 0.925rem;
}
.soledit-pricing-table {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.soledit-pricing-table__tier--featured {
  border-color: var(--soledit-pricing-featured-border, #2563eb);
  box-shadow: 0 16px 40px rgba(37, 99, 235, 0.12);
}
.soledit-pricing-table__price-row {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 0.75rem;
}
.soledit-pricing-table__price {
  font-size: 2rem;
  font-weight: 800;
}
.soledit-pricing-table__period {
  color: var(--soledit-text-muted);
}
.soledit-pricing-table__features {
  margin: 1rem 0;
  padding-inline-start: 1.25rem;
}
.soledit-pricing-table__features li {
  margin-block: 0.35rem;
}
.soledit-team-grid--list {
  grid-template-columns: 1fr;
}
.soledit-team-grid__photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--soledit-radius-lg);
  background: #e2e8f0;
}
.soledit-team-grid--list .soledit-team-grid__member {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: 1rem;
}
.soledit-team-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 760px) {
  .soledit-stats--grid {
    grid-template-columns: 1fr;
  }
  .soledit-stats--row {
    flex-direction: column;
    gap: 1rem;
  }
  .soledit-stats--row > .soledit-stats__item {
    flex: 1 1 auto;
    max-width: none;
    width: 100%;
  }
  /* Row + dividers: horizontal “rail” breaks when stacked — use full cards */
  .soledit-stats--row.soledit-stats--dividers {
    gap: 0.75rem;
    padding-block: 0;
  }
  .soledit-stats--row.soledit-stats--dividers > .soledit-stats__item {
    border-radius: var(--soledit-radius-lg);
    border: 1px solid var(--soledit-card-border, #e2e8f0);
    background: var(--soledit-card-bg, #fff);
    padding: 1.25rem;
  }
  .soledit-pricing-table,
  .soledit-team-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Hero — split variant
   ============================================================ */

.soledit-hero--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: inherit;
}

.soledit-hero--split .soledit-hero__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--soledit-section-padding-y, 4rem) var(--soledit-gutter, 1.5rem);
}

.soledit-hero--split .soledit-hero__media {
  position: relative;
  overflow: hidden;
}

.soledit-hero--split .soledit-hero__media img,
.soledit-hero--split .soledit-hero__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 760px) {
  .soledit-hero--split {
    grid-template-columns: 1fr;
  }

  .soledit-hero--split .soledit-hero__media {
    aspect-ratio: 16 / 9;
    position: relative;
  }

  .soledit-hero--split-media-start .soledit-hero__media {
    order: -1;
  }
}

/* ============================================================
   Card grid — featured-first variant
   ============================================================ */

.soledit-card-grid--featured-first {
  display: grid;
  grid-template-columns: repeat(var(--soledit-card-cols, 3), 1fr);
}

.soledit-card-grid--featured-first .soledit-card-grid__card--featured {
  grid-column: span 2;
}

@media (max-width: 760px) {
  .soledit-card-grid--featured-first .soledit-card-grid__card--featured {
    grid-column: span 1;
  }
}

/* ============================================================
   Section heading — with-cta variant
   ============================================================ */

.soledit-section-heading--with-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.soledit-section-heading--with-cta .soledit-section-heading__cta {
  flex-shrink: 0;
}

/* ============================================================
   Testimonial — carousel variant
   ============================================================ */

.soledit-testimonial--carousel .soledit-testimonial__items {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 1.25rem;
  padding-block-end: 0.75rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.soledit-testimonial--carousel .soledit-testimonial__item {
  flex: 0 0 min(340px, 85vw);
  scroll-snap-align: start;
}

/* ============================================================
   Table — comparison variant
   ============================================================ */

.soledit-content-table--comparison .soledit-table__comparison-table {
  border-collapse: collapse;
  width: 100%;
}

.soledit-content-table--comparison .soledit-table__comparison-table th,
.soledit-content-table--comparison .soledit-table__comparison-table td {
  padding: 0.625rem 1rem;
  text-align: center;
  border-bottom: 1px solid var(--soledit-table-border, #e2e8f0);
}

.soledit-content-table--comparison .soledit-table__comparison-table th[scope="row"] {
  text-align: start;
  font-weight: 500;
}

.soledit-content-table--comparison .soledit-table__comparison-table thead th {
  font-weight: 600;
  border-bottom-width: 2px;
}

.soledit-table__check {
  color: var(--soledit-color-success, #16a34a);
  font-weight: bold;
}

.soledit-table__cross {
  color: var(--soledit-color-muted, #9ca3af);
}

/* ============================================================
   Gallery block (new)
   ============================================================ */

.soledit-gallery {
  --gallery-cols: 3;
  --gallery-gap: 1rem;
}

.soledit-gallery[data-columns="2"] { --gallery-cols: 2; }
.soledit-gallery[data-columns="3"] { --gallery-cols: 3; }
.soledit-gallery[data-columns="4"] { --gallery-cols: 4; }

.soledit-gallery[data-gap="sm"] { --gallery-gap: 0.5rem; }
.soledit-gallery[data-gap="md"] { --gallery-gap: 1rem; }
.soledit-gallery[data-gap="lg"] { --gallery-gap: 1.5rem; }

.soledit-gallery--grid {
  display: grid;
  grid-template-columns: repeat(var(--gallery-cols), 1fr);
  gap: var(--gallery-gap);
}

.soledit-gallery--masonry {
  columns: var(--gallery-cols);
  gap: var(--gallery-gap);
}

.soledit-gallery--carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: var(--gallery-gap);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding-block-end: 0.5rem;
}

.soledit-gallery__item {
  overflow: hidden;
  break-inside: avoid;
  scroll-snap-align: start;
  position: relative;
}

.soledit-gallery--carousel .soledit-gallery__item {
  flex: 0 0 min(320px, 80vw);
}

.soledit-gallery__item--aspect-square { aspect-ratio: 1; }
.soledit-gallery__item--aspect-4-3   { aspect-ratio: 4 / 3; }
.soledit-gallery__item--aspect-16-9  { aspect-ratio: 16 / 9; }
/* natural: no forced aspect ratio */

.soledit-gallery__item img,
.soledit-gallery__item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.soledit-gallery__lightbox-trigger {
  display: block;
  width: 100%;
  height: 100%;
}

.soledit-gallery__caption {
  font-size: 0.85em;
  margin-block-start: 0.25rem;
  color: var(--soledit-color-muted, #6b7280);
}

.soledit-gallery__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--soledit-placeholder-bg, #f3f4f6);
  aspect-ratio: 1;
  color: var(--soledit-color-muted, #6b7280);
  font-size: 0.875rem;
}

@media (max-width: 760px) {
  .soledit-gallery--grid,
  .soledit-gallery--masonry {
    --gallery-cols: 2;
  }

  .soledit-gallery[data-columns="4"] {
    --gallery-cols: 2;
  }
}
