/* Builder V4 design tokens. The inline page settings override these fallbacks. */
.lpb-v2-root {
  --lpb-color-brand: #6c47ef;
  --lpb-color-accent: #28b7da;
  --lpb-color-text: #172033;
  --lpb-color-muted: #68748b;
  --lpb-color-surface: #ffffff;
  --lpb-color-surface-soft: #f6f8fc;
  --lpb-color-border: #d8deea;
  --lpb-color-success: #16a064;
  --lpb-color-warning: #d08a12;
  --lpb-color-danger: #d84a4a;
  --lpb-content-width: 1180px;
  --lpb-page-gutter: 20px;
  --lpb-section-space: 72px;
  --lpb-content-gap: 16px;
  --lpb-layout-gap: 24px;
  --lpb-card-padding: 24px;
  --lpb-radius-sm: 10px;
  --lpb-radius-md: 16px;
  --lpb-radius-lg: 24px;
  --brand: var(--lpb-color-brand);
  --surface-soft: var(--lpb-color-surface-soft);
  min-height: 1px;
  color: var(--lpb-color-text);
}

.lpb-v2-node {
  box-sizing: border-box;
  position: relative;
}

.lpb-v2-node--section {
  --lpb-v2-section-inner-width: var(--lpb-content-width, 1180px);
  --lpb-v2-section-inner-gutter: var(--lpb-page-gutter, 20px);
  --lpb-v2-section-gap: var(--lpb-v2-grid-gap, var(--lpb-layout-gap, 24px));
  padding: var(--lpb-section-space, 72px) 0;
}

.lpb-v2-section__inner {
  width: min(var(--lpb-v2-section-inner-width, 1180px), calc(100% - (var(--lpb-v2-section-inner-gutter, 20px) * 2)));
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--lpb-v2-section-gap, var(--lpb-layout-gap, 24px));
}

.lpb-v2-variant--hero {
  background: radial-gradient(circle at 85% 20%, color-mix(in srgb, var(--lpb-color-accent, #28b7da) 15%, transparent), transparent 36%), linear-gradient(115deg, color-mix(in srgb, var(--lpb-color-brand, #6c47ef) 9%, transparent), color-mix(in srgb, var(--lpb-color-surface, #fff) 90%, transparent));
}

.lpb-v2-variant--soft {
  background: var(--lpb-color-surface-soft, #f6f8fc);
}

.lpb-v2-variant--cta {
  text-align: center;
  background: linear-gradient(135deg, color-mix(in srgb, var(--lpb-color-brand, #6c47ef) 10%, transparent), color-mix(in srgb, var(--lpb-color-accent, #28b7da) 8%, transparent));
}

.lpb-v2-container__inner {
  min-width: 0;
}

.lpb-v2-grid {
  display: grid;
  gap: var(--lpb-v2-grid-gap, 24px);
  row-gap: var(--lpb-v2-grid-row-gap, var(--lpb-v2-grid-gap, 24px));
  column-gap: var(--lpb-v2-grid-column-gap, var(--lpb-v2-grid-gap, 24px));
  align-items: var(--lpb-v2-grid-align-items, stretch);
  justify-content: var(--lpb-v2-grid-justify-content, normal);
}

/* Every Row/Grid uses twelve physical tracks. There is no parent-level
 * column count: each direct child's responsive span is the source of truth. */
.lpb-v2-grid--12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: row;
}

.lpb-v2-grid--12 > .lpb-v2-node {
  min-width: 0;
  grid-column-start: var(--lpb-grid-start-d, auto);
  grid-column-end: span var(--lpb-grid-span-d, 12);
}

.lpb-v2-is-card {
  padding: var(--lpb-card-padding, 24px);
  border: 1px solid var(--lpb-color-border, #d8deea);
  border-radius: var(--lpb-radius-lg, 24px);
  background: color-mix(in srgb, var(--lpb-color-surface, #fff) 94%, transparent);
  box-shadow: 0 18px 50px rgba(29, 42, 66, .06);
}

.lpb-v2-node--heading > :is(h1,h2,h3,h4,h5,h6) {
  margin: 0;
}

/* Keep spacing between builder nodes controlled by the node box model itself.
 * Typography may still have margins between paragraphs inside one rich-text
 * node, but the first/last child must not leak margins outside that node. */
.lpb-v2-copy > :first-child,
.lpb-v2-node--quote > div > :first-child {
  margin-top: 0;
}

.lpb-v2-copy > :last-child,
.lpb-v2-node--quote > div > :last-child {
  margin-bottom: 0;
}

.lpb-v2-node--image {
  margin: 0;
}

.lpb-v2-node--image img,
.lpb-v2-node--video video {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
}

.lpb-v2-node--image figcaption {
  margin-top: 9px;
  color: var(--lpb-color-muted, #68748b);
  font-size: .9rem;
}

.lpb-v2-image-placeholder,
.lpb-v2-media-placeholder {
  min-height: 180px;
  display: grid;
  place-items: center;
  gap: 8px;
  border: 1px dashed color-mix(in srgb, var(--lpb-color-muted, #68748b) 45%, transparent);
  border-radius: var(--lpb-radius-md, 16px);
  color: var(--lpb-color-muted, #68748b);
  background: color-mix(in srgb, var(--lpb-color-surface-soft, #f6f8fc) 86%, transparent);
}

.lpb-v2-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}


.lpb-v2-buttons-node--full .lpb-v2-buttons > :is(.btn, .lpb-v2-text-link) {
  flex: 1 1 100%;
  justify-content: center;
  text-align: center;
}

.lpb-v2-text-link {
  color: var(--lpb-color-brand, #6c47ef);
  font-weight: 700;
}

.lpb-v2-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 11px;
}

.lpb-v2-checklist li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.lpb-v2-checklist li > span {
  color: var(--lpb-color-success, #16a064);
  font-weight: 800;
}

.lpb-v2-checklist.is-compact {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.lpb-v2-checklist.is-compact li {
  padding: 7px 12px;
  border: 1px solid var(--lpb-color-border, #d8deea);
  border-radius: 999px;
}

.lpb-v2-faq {
  display: grid;
  gap: 12px;
}

.lpb-v2-faq details {
  border: 1px solid var(--lpb-color-border, #d8deea);
  border-radius: var(--lpb-radius-md, 16px);
  padding: 16px 18px;
  background: var(--lpb-color-surface, #fff);
}

.lpb-v2-faq summary {
  cursor: pointer;
  font-weight: 750;
}

.lpb-v2-faq details > div {
  padding-top: 12px;
}

.lpb-v2-node--quote {
  margin: 0;
  padding: 24px 28px;
  border-left: 4px solid var(--lpb-color-brand, #7047ef);
  border-radius: 0 16px 16px 0;
  background: rgba(112,71,239,.055);
}

.lpb-v2-node--quote cite {
  display: block;
  margin-top: 14px;
  font-style: normal;
  font-weight: 700;
}

.lpb-v2-node--divider hr {
  margin: 10px 0;
  border: 0;
  border-top: 1px solid var(--lpb-color-border, #d8deea);
}

.lpb-v2-builder-tools {
  display: none;
}

@media (max-width: 1024px) {
  .lpb-v2-grid--12 > .lpb-v2-node {
    grid-column-start: var(--lpb-grid-start-t, var(--lpb-grid-start-d, auto));
    grid-column-end: span var(--lpb-grid-span-t, var(--lpb-grid-span-d, 12));
  }
}

@media (max-width: 640px) {
  .lpb-v2-grid--12 > .lpb-v2-node {
    grid-column-start: var(--lpb-grid-start-m, var(--lpb-grid-start-t, var(--lpb-grid-start-d, auto)));
    grid-column-end: span var(--lpb-grid-span-m, var(--lpb-grid-span-t, var(--lpb-grid-span-d, 12)));
  }
}

.lpb-v2-empty-drop {
  width: min(var(--lpb-content-width, 1180px), calc(100% - (var(--lpb-page-gutter, 20px) * 2)));
  min-height: 220px;
  margin: 34px auto;
  display: grid;
  place-content: center;
  gap: 6px;
  border: 2px dashed color-mix(in srgb, var(--lpb-color-brand, #6c47ef) 30%, transparent);
  border-radius: var(--lpb-radius-md, 16px);
  text-align: center;
  color: var(--lpb-color-muted, #68748b);
  background: color-mix(in srgb, var(--lpb-color-brand, #6c47ef) 2.5%, transparent);
}

.lpb-v2-empty-drop strong {
  color: var(--lpb-color-text, #172033);
}

/* Builder V4 extended primitives */
.lpb-v2-icon {
  font-size: 2rem;
  line-height: 1;
}

.lpb-v2-icon > i {
  display: inline-block;
  font-size: inherit;
  color: currentColor;
}

.lpb-v2-icon__image {
  width: 1em;
  height: 1em;
  display: inline-block;
  object-fit: contain;
  object-position: center;
  vertical-align: middle;
}

.lpb-v2-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.2;
}

.lpb-v2-badge--brand { color: var(--lpb-color-brand, #5c3ad1); background: color-mix(in srgb, var(--lpb-color-brand, #6c47ef) 11%, transparent); }
.lpb-v2-badge--neutral { color: var(--lpb-color-muted, #48566f); background: var(--lpb-color-surface-soft, #eef2f7); }
.lpb-v2-badge--success { color: var(--lpb-color-success, #08783f); background: color-mix(in srgb, var(--lpb-color-success, #16a064) 12%, transparent); }
.lpb-v2-badge--warning { color: var(--lpb-color-warning, #935d00); background: color-mix(in srgb, var(--lpb-color-warning, #d08a12) 16%, transparent); }
.lpb-v2-badge--danger { color: var(--lpb-color-danger, #a62929); background: color-mix(in srgb, var(--lpb-color-danger, #d84a4a) 12%, transparent); }

.lpb-v2-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--lpb-color-brand, #6c47ef);
  font-weight: 750;
  text-decoration: none;
}

.lpb-v2-link:hover { text-decoration: underline; }

.lpb-v2-metric {
  min-width: 0;
}

.lpb-v2-metric__value {
  display: flex;
  align-items: baseline;
  gap: 3px;
  color: var(--lpb-color-text, #172033);
}

.lpb-v2-metric__value strong {
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 850;
  line-height: .98;
  letter-spacing: -.045em;
}

.lpb-v2-metric__value span {
  font-size: 1rem;
  font-weight: 750;
  color: var(--lpb-color-muted, #55627a);
}

.lpb-v2-metric__label {
  margin-top: 10px;
  font-weight: 750;
  color: var(--lpb-color-text, #28344a);
}

.lpb-v2-metric__description {
  margin-top: 5px;
  color: var(--lpb-color-muted, #69758a);
  font-size: .92rem;
}

.lpb-v2-progress {
  display: grid;
  gap: 8px;
}

.lpb-v2-progress__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: .92rem;
}

.lpb-v2-progress__track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--lpb-color-border, #d8deea) 70%, var(--lpb-color-surface-soft, #f6f8fc));
}

.lpb-v2-progress__track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--lpb-color-brand, #6c47ef), var(--lpb-color-accent, #28b7da));
}

.lpb-v2-table-scroll {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--lpb-color-border, #d8deea);
  border-radius: var(--lpb-radius-md, 16px);
  background: var(--lpb-color-surface, #fff);
}

.lpb-v2-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: .94rem;
}

.lpb-v2-table caption {
  padding: 14px 16px 8px;
  color: var(--lpb-color-muted, #667187);
  text-align: left;
  font-size: .86rem;
}

.lpb-v2-table :is(th, td) {
  padding: 14px 16px;
  border-bottom: 1px solid color-mix(in srgb, var(--lpb-color-border, #d8deea) 75%, transparent);
  text-align: left;
  vertical-align: top;
}

.lpb-v2-table th {
  color: var(--lpb-color-text, #263147);
  background: var(--lpb-color-surface-soft, #f7f9fc);
  font-weight: 800;
}

.lpb-v2-table.is-striped tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--lpb-color-surface-soft, #fafbfe) 72%, transparent); }
.lpb-v2-table tbody tr:last-child td { border-bottom: 0; }

.lpb-v2-code {
  overflow: hidden;
  border: 1px solid rgba(24,38,62,.14);
  border-radius: 16px;
  background: #111827;
  color: #e5e7eb;
}

.lpb-v2-code__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 14px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: #0b1220;
  color: #9ca3af;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.lpb-v2-code__bar button {
  border: 0;
  padding: 3px 0;
  background: transparent;
  color: #c4b5fd;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 750;
  text-transform: none;
  letter-spacing: normal;
}

.lpb-v2-code pre {
  margin: 0;
  padding: 18px;
  overflow: auto;
  color: inherit;
  background: transparent;
  font: 500 .88rem/1.65 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  white-space: pre;
}

.lpb-v2-code code { color: inherit; }

.lpb-v2-tabs {
  min-width: 0;
}

.lpb-v2-tabs__nav {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 5px;
  border: 1px solid var(--lpb-color-border, #d8deea);
  border-radius: var(--lpb-radius-md, 16px);
  background: var(--lpb-color-surface-soft, #f4f6fa);
}

.lpb-v2-tabs__nav button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 10px;
  padding: 9px 14px;
  background: transparent;
  color: var(--lpb-color-muted, #667187);
  cursor: pointer;
  font-weight: 750;
}

.lpb-v2-tabs__nav button.is-active {
  color: var(--lpb-color-brand, #4f2fc2);
  background: var(--lpb-color-surface, #fff);
  box-shadow: 0 4px 14px rgba(35,45,70,.08);
}

.lpb-v2-tabs__panels {
  padding-top: 18px;
}

.lpb-v2-tabs__panels > [role="tabpanel"] { display: none; }
.lpb-v2-tabs__panels > [role="tabpanel"].is-active { display: block; }

.lpb-v2-alert {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid transparent;
  border-radius: 14px;
}

.lpb-v2-alert > i { margin-top: 3px; }
.lpb-v2-alert strong { display: block; margin-bottom: 5px; }
.lpb-v2-alert--info { color: #1f4b83; border-color: #bfd8f6; background: #eff7ff; }
.lpb-v2-alert--success { color: var(--lpb-color-success, #17603b); border-color: color-mix(in srgb, var(--lpb-color-success, #16a064) 30%, transparent); background: color-mix(in srgb, var(--lpb-color-success, #16a064) 8%, var(--lpb-color-surface, #fff)); }
.lpb-v2-alert--warning { color: var(--lpb-color-warning, #7d5310); border-color: color-mix(in srgb, var(--lpb-color-warning, #d08a12) 34%, transparent); background: color-mix(in srgb, var(--lpb-color-warning, #d08a12) 9%, var(--lpb-color-surface, #fff)); }
.lpb-v2-alert--danger { color: var(--lpb-color-danger, #842d2d); border-color: color-mix(in srgb, var(--lpb-color-danger, #d84a4a) 30%, transparent); background: color-mix(in srgb, var(--lpb-color-danger, #d84a4a) 8%, var(--lpb-color-surface, #fff)); }

.lpb-v2-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.lpb-v2-social > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--lpb-color-border, #d8deea);
  border-radius: 10px;
  color: #334057;
  background: #fff;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 700;
}

.lpb-v2-social > a:hover {
  color: var(--lpb-color-brand, #6c47ef);
  border-color: rgba(108,71,239,.35);
}

.lpb-v2-logo-cloud {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 18px;
  align-items: center;
}

.lpb-v2-logo-cloud__item {
  min-height: 74px;
  display: grid;
  place-items: center;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--lpb-color-border, #d8deea) 75%, transparent);
  border-radius: var(--lpb-radius-md, 16px);
  color: var(--lpb-color-muted, #8a94a5);
  background: color-mix(in srgb, var(--lpb-color-surface, #fff) 72%, transparent);
}

.lpb-v2-logo-cloud__item img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 42px;
  object-fit: contain;
}

.lpb-v2-logo-cloud.is-grayscale .lpb-v2-logo-cloud__item img {
  filter: grayscale(1);
  opacity: .72;
  transition: filter .15s ease, opacity .15s ease;
}

.lpb-v2-logo-cloud.is-grayscale .lpb-v2-logo-cloud__item:hover img {
  filter: none;
  opacity: 1;
}


/* Builder V4 accessibility baseline */
.lpb-v2-root :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--lpb-color-brand, #6c47ef);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .lpb-v2-root *,
  .lpb-v2-root *::before,
  .lpb-v2-root *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
