/*
 * Logo Bar block — scoped styles
 *
 * Whyso Design System — auto-generated from the Whyso hub.
 * Project: Contenze Test
 * Generated: 2026-05-10T14:58:03+00:00
 *
 * Scoped to .logo-bar — relies on tokens.css being loaded.
 * One breakpoint maximum (structural layout shifts only — never size or
 * colour, those come from the fluid scales in tokens.css).
 */

.logo-bar {
    padding-block: var(--space-2xl);
    /* Surface default — overridden by [data-surface] variants below */
    background: var(--color-bg);
    color: var(--color-text);
}

.logo-bar__inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* Surface variants */

.logo-bar[data-bg="light"] {
    background: var(--color-bg);
    color: var(--color-text);
}

.logo-bar[data-bg="alt"] {
    background: var(--color-bg-alt);
    color: var(--color-text);
}

.logo-bar[data-bg="dark"] {
    background: var(--color-bg-dark);
    color: var(--color-text-inverse);
}

/* Layout variants */

.logo-bar[data-layout="static"] .logo-bar__inner {
    /* TODO: style static layout */
}

.logo-bar[data-layout="marquee"] .logo-bar__inner {
    /* TODO: style marquee layout */
}




/* ------------------------------------------------------------------
 * Block polish — from preview_sample.extra_css
 * Plus CSS for every component + animation the block references.
 * Matches byte-for-byte what /library preview inlines, so the
 * deployed block renders the same on a real WordPress site.
 * ------------------------------------------------------------------ */

/* --- preview_sample.extra_css --- */
.logo-bar { padding-block: var(--space-xl); }
.logo-bar[data-size="sm"] { padding-block: var(--space-lg); }
.logo-bar[data-size="lg"] { padding-block: var(--space-2xl); }
.logo-bar__inner { display: grid; gap: var(--space-md); }
.logo-bar__heading { text-align: center; font-size: var(--text-sm); text-transform: uppercase; letter-spacing: 0.14em; color: var(--color-text-muted); font-weight: 600; margin: 0; }
.logo-bar__track { overflow: hidden; }
.logo-bar__items { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-xl) var(--space-lg); align-items: center; }
.logo-bar__item { display: inline-flex; align-items: center; min-height: 32px; opacity: 0.75; transition: opacity 180ms ease, filter 180ms ease; filter: grayscale(1); }
.logo-bar__item:hover { opacity: 1; filter: none; }
.logo-bar__item-logo { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-weight: 600; letter-spacing: 0.04em; color: currentColor; }
.logo-bar[data-size="sm"] .logo-bar__item-logo { font-size: var(--text-sm); }
.logo-bar[data-size="md"] .logo-bar__item-logo { font-size: var(--text-base); }
.logo-bar[data-size="lg"] .logo-bar__item-logo { font-size: var(--text-lg); }
.logo-bar[data-layout="marquee"] .logo-bar__items { flex-wrap: nowrap; gap: var(--space-2xl); animation: logo-bar-scroll 28s linear infinite; width: max-content; }
.logo-bar[data-layout="marquee"] .logo-bar__track { mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); }
.logo-bar[data-layout="marquee"] .logo-bar__item { flex: none; }
@keyframes logo-bar-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.logo-bar[data-surface="dark"] { background: var(--color-bg-dark); color: var(--color-text-inverse, #fff); }
.logo-bar[data-surface="dark"] .logo-bar__heading { color: color-mix(in srgb, currentColor 60%, transparent); }
