/* Elements added in the visual editor. Built on the shared layout (base.css), so they take each design's fonts, colours and corners. */

.cvc-b .cvc-section-head:last-child { margin-bottom: 0; }
.cvc-b-head-left { margin-left: 0; text-align: left; }
.cvc-b-head-left .cvc-lead { margin-left: 0; }
.cvc-b-lead p + p { margin-top: 0.8em; }
.cvc-b-w-narrow { max-width: 780px; }
.cvc-b-w-wide { max-width: 1400px; }
.cvc-b-space-s { padding-block: clamp(28px, 4vw, 48px); }
.cvc-b-space-l { padding-block: clamp(88px, 11vw, 152px); }
.cvc-b-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.cvc-b-actions:empty { display: none; }

/* Backgrounds */
.cvc-b-bg-tint { background: var(--cvc-tint); }
.cvc-b-bg-primary { background: var(--cvc-primary); }
.cvc-b-bg-dark { background: var(--cvc-dark); }
:is(.cvc-b-bg-primary, .cvc-b-bg-dark, .cvc-b-on-dark) { color: rgba(255, 255, 255, 0.82); }
:is(.cvc-b-bg-primary, .cvc-b-bg-dark, .cvc-b-on-dark) :is(.cvc-h2, .cvc-h3, blockquote, strong, dd) { color: #fff; }
:is(.cvc-b-bg-primary, .cvc-b-bg-dark, .cvc-b-on-dark) :is(.cvc-lead, .cvc-prose, .cvc-b-card-text, .cvc-step-text, dt, figcaption span) { color: rgba(255, 255, 255, 0.78); }
:is(.cvc-b-bg-primary, .cvc-b-bg-dark, .cvc-b-on-dark) .cvc-kicker { background: rgba(255, 255, 255, 0.14); color: #fff; }
:is(.cvc-b-bg-primary, .cvc-b-bg-dark, .cvc-b-on-dark) :is(.cvc-b-card, .cvc-b-faq-item) { background: rgba(255, 255, 255, 0.07); border-color: rgba(255, 255, 255, 0.16); }
:is(.cvc-b-bg-primary, .cvc-b-bg-dark, .cvc-b-on-dark) .cvc-btn-primary { background: #fff; color: var(--cvc-ink) !important; }

/* Text */
.cvc-b-text { max-width: 780px; }
.cvc-b-align-center { margin-inline: auto; text-align: center; }
.cvc-b-text .cvc-h2 { margin-bottom: 18px; }
.cvc-b-cta { max-width: 760px; margin-inline: auto; text-align: center; }
.cvc-b-cta .cvc-b-lead { margin: 14px auto 0; }
.cvc-b-cta .cvc-b-actions { justify-content: center; }

/* Pictures and video */
.cvc-b-figure { margin-inline: auto; }
.cvc-b-figure img { display: block; width: 100%; height: auto; }
.cvc-b-figure.is-rounded img { border-radius: var(--cvc-radius); }
.cvc-b-size-medium { max-width: 860px; margin-inline: auto; }
.cvc-b-size-small { max-width: 520px; margin-inline: auto; }
.cvc-b-caption { margin-top: 10px; color: var(--cvc-muted); font-size: 0.9rem; text-align: center; }
.cvc-b-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 5vw, 72px); align-items: center; }
.cvc-b-side-right .cvc-b-split-media { order: 2; }
.cvc-b-split-media img { display: block; width: 100%; height: auto; border-radius: var(--cvc-radius); box-shadow: var(--cvc-shadow-lg); }
.cvc-b-split-body .cvc-h2 { margin-bottom: 16px; }
.cvc-b-video-title { margin-bottom: 24px; text-align: center; }
.cvc-b-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--cvc-radius); overflow: hidden; background: var(--cvc-dark); box-shadow: var(--cvc-shadow-lg); }
.cvc-b-video :is(iframe, video) { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cvc-b-map { margin-top: 0; }
.cvc-b-gallery { display: grid; gap: 14px; }
.cvc-b-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--cvc-radius-sm); }
.cvc-b-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cvc-b-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cvc-b-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Cards and lists */
.cvc-b-grid { display: grid; gap: 20px; }
.cvc-b-card { display: flex; flex-direction: column; gap: 10px; padding: 26px 24px; border: 1px solid var(--cvc-line); border-radius: var(--cvc-radius); background: #fff; }
.cvc-b-icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: var(--cvc-primary-soft); color: var(--cvc-primary); }
.cvc-b-card-text { color: var(--cvc-muted); font-size: 0.96rem; }
.cvc-b-numbers { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 24px; text-align: center; }
.cvc-b-numbers div { display: flex; flex-direction: column; gap: 4px; }
.cvc-b-numbers dd { color: var(--cvc-primary); font-family: var(--cvc-font-head); font-size: clamp(2rem, 4vw, 3rem); font-weight: var(--cvc-head-weight); letter-spacing: var(--cvc-head-spacing); line-height: 1.1; }
.cvc-b-numbers dt { color: var(--cvc-muted); font-weight: 500; }
.cvc-b-quote { max-width: 820px; margin-inline: auto; text-align: center; }
.cvc-b-quote-mark { display: inline-flex; color: var(--cvc-accent); }
.cvc-b-quote-mark .cvc-icon { width: 36px; height: 36px; }
.cvc-b-quote blockquote { margin-top: 14px; color: var(--cvc-ink); font-family: var(--cvc-font-head); font-size: clamp(1.25rem, 2.4vw, 1.75rem); font-weight: 600; line-height: 1.4; text-wrap: balance; }
.cvc-b-quote figcaption { display: flex; flex-direction: column; gap: 2px; margin-top: 20px; }
.cvc-b-quote figcaption strong { color: var(--cvc-ink); }
.cvc-b-quote-role { color: var(--cvc-muted); font-size: 0.9rem; }
.cvc-b-faq { display: grid; gap: 10px; max-width: 820px; margin-inline: auto; }
.cvc-b-faq-item { border: 1px solid var(--cvc-line); border-radius: var(--cvc-radius-sm); background: #fff; }
.cvc-b-faq-item summary { padding: 16px 20px; color: var(--cvc-ink); font-weight: 700; cursor: pointer; }
.cvc-b-faq-item p { padding: 0 20px 18px; color: var(--cvc-body); }

/* Spacing */
.cvc-b-spacer-s { height: 32px; }
.cvc-b-spacer-m { height: 72px; }
.cvc-b-spacer-l { height: 128px; }
.cvc-b-divider { border: 0; border-top: 1px solid var(--cvc-line); }
.cvc-b-shortcode { max-width: 100%; overflow-x: auto; }

@media (max-width: 860px) {
  .cvc-b-split { grid-template-columns: minmax(0, 1fr); }
  .cvc-b-side-right .cvc-b-split-media { order: 0; }
  .cvc-b-cols-3, .cvc-b-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .cvc-b-cols-2:not(.cvc-b-gallery), .cvc-b-grid.cvc-b-cols-3, .cvc-b-grid.cvc-b-cols-4 { grid-template-columns: minmax(0, 1fr); }
  .cvc-b-actions .cvc-btn { width: 100%; }
}
