/* ── Card Carousel ── */ .bkbg-cc-wrap { position: relative; width: 100%; box-sizing: border-box; } /* Viewport clips the sliding track */ .bkbg-cc-viewport { overflow: hidden; position: relative; width: 100%; } /* Sliding track */ .bkbg-cc-track { display: flex; transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); will-change: transform; cursor: grab; user-select: none; -webkit-user-select: none; } .bkbg-cc-track.is-dragging { cursor: grabbing; transition: none; } /* Individual card */ .bkbg-cc-card { flex: 0 0 auto; box-sizing: border-box; display: flex; flex-direction: column; overflow: hidden; position: relative; transition: transform 0.2s, box-shadow 0.2s; } .bkbg-cc-card:hover { transform: translateY(-3px); } /* Shadow variants */ .bkbg-cc-card.shadow-none { box-shadow: none; } .bkbg-cc-card.shadow-sm { box-shadow: 0 1px 6px rgba(0,0,0,0.08); } .bkbg-cc-card.shadow-md { box-shadow: 0 4px 16px rgba(0,0,0,0.12); } .bkbg-cc-card.shadow-lg { box-shadow: 0 8px 32px rgba(0,0,0,0.16); } .bkbg-cc-card.shadow-sm:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.14); } .bkbg-cc-card.shadow-md:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.16); } .bkbg-cc-card.shadow-lg:hover { box-shadow: 0 12px 40px rgba(0,0,0,0.20); } /* Horizontal layout */ .bkbg-cc-card.layout-horizontal { flex-direction: row; } .bkbg-cc-card.layout-horizontal .bkbg-cc-img-wrap { flex-shrink: 0; width: 40%; } /* Overlay layout */ .bkbg-cc-card.layout-overlay { overflow: hidden; } .bkbg-cc-card.layout-overlay .bkbg-cc-img-wrap img { position: absolute !important; inset: 0; width: 100%; height: 100%; object-fit: cover; } .bkbg-cc-card.layout-overlay .bkbg-cc-body { position: relative; z-index: 1; background: linear-gradient(180deg, transparent 10%, rgba(0,0,0,0.75) 100%); margin-top: auto; } /* Image wrapper */ .bkbg-cc-img-wrap { position: relative; overflow: hidden; } .bkbg-cc-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s; } .bkbg-cc-card:hover .bkbg-cc-img-wrap img { transform: scale(1.04); } .bkbg-cc-card.layout-overlay .bkbg-cc-img-wrap { position: absolute; inset: 0; } /* Aspect ratio shim (intrinsic ratio via padding-top on child) */ .bkbg-cc-img-ratio { position: relative; overflow: hidden; } .bkbg-cc-img-ratio img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } /* No image placeholder */ .bkbg-cc-img-placeholder { background: #f3f4f6; display: flex; align-items: center; justify-content: center; color: #d1d5db; font-size: 28px; } /* Card body */ .bkbg-cc-body { padding: 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; } /* Badge */ .bkbg-cc-badge { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 3px 10px; border-radius: 999px; align-self: flex-start; } /* Eyebrow */ .bkbg-cc-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.3; } /* Heading */ .bkbg-cc-heading { margin: 0; line-height: 1.3; font-weight: 700; } /* Description */ .bkbg-cc-desc { margin: 0; line-height: 1.65; flex-grow: 1; } /* Link — arrow style */ .bkbg-cc-link { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; text-decoration: none; margin-top: 4px; transition: gap 0.2s; } .bkbg-cc-link:hover { gap: 8px; } .bkbg-cc-link.style-underline { text-decoration: underline; } .bkbg-cc-link.style-button { padding: 8px 18px; border-radius: 6px; align-self: flex-start; font-size: 13px; transition: opacity 0.2s; } .bkbg-cc-link.style-button:hover { opacity: 0.85; } /* Arrows */ .bkbg-cc-arrows { display: flex; justify-content: space-between; position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); pointer-events: none; padding: 0 8px; z-index: 10; } .bkbg-cc-arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(0,0,0,0.1); display: flex; align-items: center; justify-content: center; cursor: pointer; pointer-events: all; font-size: 18px; line-height: 1; transition: transform 0.15s, box-shadow 0.15s; box-shadow: 0 2px 8px rgba(0,0,0,0.1); flex-shrink: 0; } .bkbg-cc-arrow:hover { transform: scale(1.08); box-shadow: 0 4px 16px rgba(0,0,0,0.15); } .bkbg-cc-arrow:disabled, .bkbg-cc-arrow.is-disabled { opacity: 0.35; cursor: not-allowed; transform: none; } /* Dots */ .bkbg-cc-dots { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 16px; flex-wrap: wrap; } .bkbg-cc-dot { width: 8px; height: 8px; border-radius: 999px; border: none; padding: 0; cursor: pointer; transition: width 0.3s, background 0.3s; } .bkbg-cc-dot.is-active { width: 20px; } /* ── Typography system ── Use .bkbg-cc-card container for specificity (0,2,0) to beat editor theme heading styles like .editor-styles-wrapper h3 (0,1,1) */ .bkbg-cc-card .bkbg-cc-heading { font-family: var(--bkbg-cc-h-font-family, inherit); font-size: var(--bkbg-cc-h-font-size-d, 18px); font-weight: var(--bkbg-cc-h-font-weight, 700); line-height: var(--bkbg-cc-h-line-height-d, 1.3); text-transform: var(--bkbg-cc-h-text-transform, none); font-style: var(--bkbg-cc-h-font-style, normal); text-decoration: var(--bkbg-cc-h-text-decoration, none); letter-spacing: var(--bkbg-cc-h-letter-spacing-d, normal); word-spacing: var(--bkbg-cc-h-word-spacing-d, normal); } .bkbg-cc-card .bkbg-cc-desc { font-family: var(--bkbg-cc-d-font-family, inherit); font-size: var(--bkbg-cc-d-font-size-d, 14px); font-weight: var(--bkbg-cc-d-font-weight, inherit); line-height: var(--bkbg-cc-d-line-height-d, 1.65); text-transform: var(--bkbg-cc-d-text-transform, none); font-style: var(--bkbg-cc-d-font-style, normal); text-decoration: var(--bkbg-cc-d-text-decoration, none); letter-spacing: var(--bkbg-cc-d-letter-spacing-d, normal); word-spacing: var(--bkbg-cc-d-word-spacing-d, normal); } .bkbg-cc-card .bkbg-cc-eyebrow { font-family: var(--bkbg-cc-e-font-family, inherit); font-size: var(--bkbg-cc-e-font-size-d, 11px); font-weight: var(--bkbg-cc-e-font-weight, 700); line-height: var(--bkbg-cc-e-line-height-d, 1.3); text-transform: var(--bkbg-cc-e-text-transform, uppercase); font-style: var(--bkbg-cc-e-font-style, normal); text-decoration: var(--bkbg-cc-e-text-decoration, none); letter-spacing: var(--bkbg-cc-e-letter-spacing-d, 0.06em); word-spacing: var(--bkbg-cc-e-word-spacing-d, normal); } @media (max-width: 1024px) { .bkbg-cc-card .bkbg-cc-heading { font-size: var(--bkbg-cc-h-font-size-t, var(--bkbg-cc-h-font-size-d, 18px)); line-height: var(--bkbg-cc-h-line-height-t, var(--bkbg-cc-h-line-height-d, 1.3)); letter-spacing: var(--bkbg-cc-h-letter-spacing-t, var(--bkbg-cc-h-letter-spacing-d, normal)); word-spacing: var(--bkbg-cc-h-word-spacing-t, var(--bkbg-cc-h-word-spacing-d, normal)); } .bkbg-cc-card .bkbg-cc-desc { font-size: var(--bkbg-cc-d-font-size-t, var(--bkbg-cc-d-font-size-d, 14px)); line-height: var(--bkbg-cc-d-line-height-t, var(--bkbg-cc-d-line-height-d, 1.65)); letter-spacing: var(--bkbg-cc-d-letter-spacing-t, var(--bkbg-cc-d-letter-spacing-d, normal)); word-spacing: var(--bkbg-cc-d-word-spacing-t, var(--bkbg-cc-d-word-spacing-d, normal)); } .bkbg-cc-card .bkbg-cc-eyebrow { font-size: var(--bkbg-cc-e-font-size-t, var(--bkbg-cc-e-font-size-d, 11px)); line-height: var(--bkbg-cc-e-line-height-t, var(--bkbg-cc-e-line-height-d, 1.3)); letter-spacing: var(--bkbg-cc-e-letter-spacing-t, var(--bkbg-cc-e-letter-spacing-d, 0.06em)); word-spacing: var(--bkbg-cc-e-word-spacing-t, var(--bkbg-cc-e-word-spacing-d, normal)); } } @media (max-width: 767px) { .bkbg-cc-card .bkbg-cc-heading { font-size: var(--bkbg-cc-h-font-size-m, var(--bkbg-cc-h-font-size-t, var(--bkbg-cc-h-font-size-d, 18px))); line-height: var(--bkbg-cc-h-line-height-m, var(--bkbg-cc-h-line-height-t, var(--bkbg-cc-h-line-height-d, 1.3))); letter-spacing: var(--bkbg-cc-h-letter-spacing-m, var(--bkbg-cc-h-letter-spacing-t, var(--bkbg-cc-h-letter-spacing-d, normal))); word-spacing: var(--bkbg-cc-h-word-spacing-m, var(--bkbg-cc-h-word-spacing-t, var(--bkbg-cc-h-word-spacing-d, normal))); } .bkbg-cc-card .bkbg-cc-desc { font-size: var(--bkbg-cc-d-font-size-m, var(--bkbg-cc-d-font-size-t, var(--bkbg-cc-d-font-size-d, 14px))); line-height: var(--bkbg-cc-d-line-height-m, var(--bkbg-cc-d-line-height-t, var(--bkbg-cc-d-line-height-d, 1.65))); letter-spacing: var(--bkbg-cc-d-letter-spacing-m, var(--bkbg-cc-d-letter-spacing-t, var(--bkbg-cc-d-letter-spacing-d, normal))); word-spacing: var(--bkbg-cc-d-word-spacing-m, var(--bkbg-cc-d-word-spacing-t, var(--bkbg-cc-d-word-spacing-d, normal))); } .bkbg-cc-card .bkbg-cc-eyebrow { font-size: var(--bkbg-cc-e-font-size-m, var(--bkbg-cc-e-font-size-t, var(--bkbg-cc-e-font-size-d, 11px))); line-height: var(--bkbg-cc-e-line-height-m, var(--bkbg-cc-e-line-height-t, var(--bkbg-cc-e-line-height-d, 1.3))); letter-spacing: var(--bkbg-cc-e-letter-spacing-m, var(--bkbg-cc-e-letter-spacing-t, var(--bkbg-cc-e-letter-spacing-d, 0.06em))); word-spacing: var(--bkbg-cc-e-word-spacing-m, var(--bkbg-cc-e-word-spacing-t, var(--bkbg-cc-e-word-spacing-d, normal))); } }