/* Website-owned presentation for the generic Visual Builder contracts.
   Native --theme-* values win; fallbacks match this Website's existing brand.
   No page IDs, content aliases, commercial rules or package-level brand styles. */
.ccvb {
  --ccvb-surface: var(--theme-background, #fff);
  --ccvb-foreground: var(--theme-foreground, #172448);
  --ccvb-surface-muted: var(--theme-muted, #f0f3ff);
  --ccvb-foreground-muted: var(--theme-foreground, #172448);
  --ccvb-surface-contrast: var(--theme-foreground, #172448);
  --ccvb-foreground-contrast: var(--theme-background, #fff);
  --ccvb-surface-accent: var(--theme-secondary, #213cc6);
  --ccvb-foreground-accent: var(--theme-primary-foreground, #fff);
  --ccvb-emphasis: var(--theme-primary, #3154f4);
  --ccvb-action-background: var(--theme-primary, #3154f4);
  --ccvb-action-foreground: var(--theme-primary-foreground, #fff);
  --ccvb-action-border: var(--theme-primary, #3154f4);
  --ccvb-action-radius: .5rem;
  --ccvb-divider: var(--theme-border, #dce4f0);
  --ccvb-focus: var(--theme-ring, #e3a534);
  --ccvb-body-leading: 1.65;
  --ccvb-gutter: clamp(1.5rem, 3.75vw, 3rem);
  --ccvb-content-width: 74rem;
  --ccvb-panel-radius: 1.125rem;
  font-family: var(--theme-body-font-family, DMSans, "Segoe UI", sans-serif);
}

.ccvb-section {
  --ccvb-section-space: clamp(3rem, 6vw, 5.75rem);
}

.ccvb-heading__title {
  font-family: var(--theme-heading-font-family, Manrope, "Segoe UI", sans-serif);
  font-weight: 600;
  letter-spacing: -.045em;
}

h1.ccvb-heading__title { font-size: clamp(3rem, 4.8vw, 4.2rem); line-height: 1.08; letter-spacing: -.06em; }
h2.ccvb-heading__title { font-size: clamp(2rem, 3.3vw, 3.25rem); line-height: 1.1; }
h3.ccvb-heading__title { font-size: clamp(1.3rem, 2vw, 1.75rem); }
h4.ccvb-heading__title { font-size: 1.25rem; }
h5.ccvb-heading__title { font-size: 1.125rem; }
h6.ccvb-heading__title { font-size: 1rem; }
.ccvb-heading__title em { font-style: normal; }

.ccvb-heading__eyebrow {
  color: var(--theme-muted-foreground, #53648b);
  font-size: .75rem;
  font-weight: 750;
  letter-spacing: .13em;
  line-height: 1.5;
}

.ccvb-action {
  box-sizing: border-box;
  min-height: 3.25rem;
  padding: .875rem 1.5625rem;
  font-size: .9375rem;
  font-weight: 650;
  line-height: 1.5;
}

.ccvb-action[data-ccvb-variant=secondary],
.ccvb-action[data-ccvb-variant=text] {
  color: var(--theme-primary, #3154f4);
}

.ccvb-action[data-ccvb-variant=secondary] { border-color: currentColor; }

.ccvb-section:is([data-ccvb-surface=contrast], [data-ccvb-surface=accent]) .ccvb-heading__eyebrow,
.ccvb-section:is([data-ccvb-surface=contrast], [data-ccvb-surface=accent]) .ccvb-action:is([data-ccvb-variant=secondary], [data-ccvb-variant=text]) {
  color: inherit;
}

.ccvb-section[data-ccvb-surface=contrast] .ccvb-heading__title em {
  color: var(--theme-accent, #a9baff);
}

.ccvb-section[data-ccvb-surface=accent] .ccvb-heading__title em { color: inherit; }

.ccvb-section[data-ccvb-surface=accent] .ccvb-action[data-ccvb-variant=primary] {
  background: var(--theme-primary-foreground, #fff);
  color: var(--theme-primary, #3154f4);
  border-color: var(--theme-primary-foreground, #fff);
}

.ccvb-card {
  border: 1px solid var(--theme-border, #dce4f0);
  border-radius: .75rem;
  padding: 1.5rem;
}

.ccvb-card h3 {
  font-family: var(--theme-heading-font-family, inherit);
  font-weight: 650;
  letter-spacing: -.025em;
}
.ccvb-card h3 a { color: inherit; text-decoration: none; }
.ccvb-cards[data-ccvb-card-presentation=links] > .ccvb-card { border: 0; border-radius: 0; padding: 1.25rem 0; border-bottom: 1px solid var(--ccvb-divider); }
.ccvb-section:is([data-ccvb-surface=contrast], [data-ccvb-surface=accent]) .ccvb-cards[data-ccvb-card-presentation=links] > .ccvb-card { border-color: #ffffff40; }

.ccvb-card img { border-radius: .375rem; }
.ccvb-media img { border-radius: .75rem; }
.ccvb-prose a, .ccvb-card a {
  color: var(--theme-primary, #3154f4);
  text-decoration: underline;
  text-underline-offset: .2em;
}
.ccvb-section:is([data-ccvb-surface=contrast], [data-ccvb-surface=accent]) :is(.ccvb-prose, .ccvb-card) a {
  color: inherit;
}
.ccvb-accordion summary { font-size: 1.0625rem; }

@media (max-width: 68.75rem) {
  h1.ccvb-heading__title { font-size: 3.6rem; }
}
@media (max-width: 50rem) {
  h1.ccvb-heading__title { font-size: clamp(3rem, 8vw, 4.1rem); }
}
@media (max-width: 30rem) {
  h1.ccvb-heading__title { font-size: 3.05rem; line-height: 1.12; }
}

/* Shared portfolio-card treatment; content and placement remain native CMS data. */
.ccvb-cards[data-ccvb-card-presentation=overlay] { --ccvb-overlay-min-height: 19.5rem; --ccvb-overlay-padding: 1.75rem; --ccvb-overlay-shade: linear-gradient(#13243299,#132432e6); --ccvb-card-heading-size: 2.25rem; }
.ccvb-cards[data-ccvb-card-presentation=overlay] .ccvb-card h3 { margin: 0 0 .4rem; line-height: 1.2; }
.ccvb-cards[data-ccvb-card-presentation=overlay] .ccvb-card p { margin: 0; }

.ccvb-cards[data-ccvb-card-presentation=overlay] .ccvb-card p.ccvb-card__eyebrow { margin-block: 0 auto; }

.ccvb-section .ccvb-section[data-ccvb-surface=default] > .ccvb-section__content { padding-inline-end: 1.5rem; }

/* Shared reading hierarchy for the Website brand, independent of page content. */
.ccvb-section .ccvb-prose, .ccvb-section .ccvb-features p, .ccvb-section .ccvb-card p { color: var(--theme-muted-foreground, #53648b); }
.ccvb-prose strong { color: var(--theme-foreground, #172448); }
h2.ccvb-heading__title em { color: var(--theme-muted-foreground, #7b8ba5); }
.ccvb-section:is([data-ccvb-surface=contrast], [data-ccvb-surface=accent]) :is(.ccvb-prose, .ccvb-prose strong, .ccvb-features p, .ccvb-card p),
.ccvb-cards[data-ccvb-card-presentation=overlay] .ccvb-card p { color: inherit; }
.ccvb-prose[data-ccvb-text-style=divided] li:has(> strong) { display: flex; justify-content: space-between; gap: 1rem; }

/* Link collections own their row spacing; avoid combining card and grid gaps. */
.ccvb-cards[data-ccvb-card-presentation=links] { row-gap: 0; }
.ccvb-cards[data-ccvb-card-presentation=links] .ccvb-card h3 { margin: 0 0 .4rem; }
.ccvb-cards[data-ccvb-card-presentation=links] .ccvb-card p { margin: 0; }
