/* Platform marketing promo carousel (tenant dashboard) */
.promo-carousel {
    --promo-carousel-height: max(250px, 33vh);
    position: relative;
    width: 100%;
    height: var(--promo-carousel-height);
    min-height: 250px;
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
    background: var(--color-surface-muted, var(--mud-palette-background-grey));
    margin-bottom: var(--space-4, 1rem);
}

.promo-carousel--preview {
    margin-bottom: 0;
}

.promo-carousel__viewport {
    position: relative;
    width: 100%;
    height: 100%;
}

.promo-carousel__slide {
    position: absolute;
    inset: 0;
    display: block;
    opacity: 0;
    pointer-events: none;
    transition: opacity 240ms ease;
    text-decoration: none;
    color: inherit;
}

.promo-carousel__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    padding: var(--space-4, 1rem);
    pointer-events: none;
    z-index: 1;
}

.promo-carousel__overlay--v-top {
    align-items: flex-start;
}

.promo-carousel__overlay--v-center {
    align-items: center;
}

.promo-carousel__overlay--v-bottom {
    align-items: flex-end;
}

.promo-carousel__overlay--h-left {
    justify-content: flex-start;
}

.promo-carousel__overlay--h-center {
    justify-content: center;
}

.promo-carousel__overlay--h-right {
    justify-content: flex-end;
}

.promo-carousel__overlay-text {
    margin: 0;
    max-width: min(90%, 48rem);
    color: var(--promo-overlay-color, var(--color-on-accent, #fff));
    font-size: var(--promo-overlay-size, 1.75rem);
    font-weight: var(--promo-overlay-weight, 600);
    font-family: var(--promo-overlay-font, var(--font-family-base, Roboto, sans-serif));
    text-align: var(--promo-overlay-text-align, center);
    line-height: 1.25;
    text-wrap: balance;
    text-shadow: 0 1px 10px color-mix(in srgb, var(--color-fg, #000) 45%, transparent);
}

.promo-carousel__overlay-text p {
    margin: 0;
}

.marketing-slide-panels {
    border: 1px solid color-mix(in srgb, var(--color-fg) 12%, transparent);
    border-radius: var(--radius-md, 10px);
}

.marketing-slide-panel-title {
    min-width: 0;
}

.marketing-slide-panel-url {
    color: var(--color-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.marketing-slide-thumb {
    width: 4.5rem;
    height: 2.5rem;
    object-fit: cover;
    border-radius: var(--radius-sm, 6px);
    border: 1px solid color-mix(in srgb, var(--color-fg) 12%, transparent);
    flex-shrink: 0;
}

.marketing-slide-preview {
    position: relative;
    width: 100%;
    min-height: 120px;
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}

.marketing-slide-preview .promo-carousel__image {
    width: 100%;
    max-height: 120px;
    object-fit: cover;
    display: block;
}

.marketing-slide-preview .promo-carousel__overlay {
    padding: var(--space-2, 0.5rem);
}

.marketing-slide-preview .promo-carousel__overlay-text {
    font-size: calc(var(--promo-overlay-size, 28px) * 0.45);
}

.promo-carousel__slide--active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}

.promo-carousel__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.promo-carousel__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: var(--radius-full, 999px);
    background: color-mix(in srgb, var(--color-fg) 35%, transparent);
    color: var(--color-on-accent, #fff);
    cursor: pointer;
}

.promo-carousel__nav--prev {
    left: var(--space-3, 12px);
}

.promo-carousel__nav--next {
    right: var(--space-3, 12px);
}

.promo-carousel__dots {
    position: absolute;
    left: 50%;
    bottom: 30px;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    gap: 8px;
    align-items: center;
}

.promo-carousel__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: none;
    border-radius: var(--radius-full, 999px);
    background: color-mix(in srgb, var(--color-fg) 30%, transparent);
    cursor: pointer;
}

.promo-carousel__dot--active {
    background: var(--color-primary);
}

.marketing-slide-thumb {
    width: 100%;
    max-height: 120px;
    object-fit: cover;
    border-radius: var(--radius-md, 8px);
}

.dashboard-page.user-dashboard .promo-carousel {
    flex-shrink: 0;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
