.dashboard-steps-badge {
    width: 2rem;
    height: 2rem;
}

/* v22 - orbit hub board (grid-template-areas has no Tailwind/BS utility) */
[data-orbit-board] {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "hub" "a" "b" "c" "d";
    gap: 1.5rem;
    align-items: center;
}

.steps-orbit-hub__hub {
    grid-area: hub;
    width: 6rem;
    height: 6rem;
    margin: 0 auto;
}

[data-orbit-slot="0"] {
    grid-area: a;
}

[data-orbit-slot="1"] {
    grid-area: b;
}

[data-orbit-slot="2"] {
    grid-area: c;
}

[data-orbit-slot="3"] {
    grid-area: d;
}

@media (min-width: 768px) {
    [data-orbit-board] {
        grid-template-columns: 1fr auto 1fr;
        grid-template-areas:
            "a hub b"
            "c hub d";
    }
}

@keyframes luxury-sidebar-timeline__reveal {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

.luxury-sidebar-timeline__visible {
    animation: luxury-sidebar-timeline__reveal 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.luxury-sidebar-timeline__sidebar {
    width: 28px;
}

.luxury-sidebar-timeline__sidebar-line {
    height: 3rem;
    width: 1px;
}

.luxury-sidebar-timeline__title-vertical {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: 0.3em;
}

.luxury-sidebar-timeline__thumb-ratio {
    aspect-ratio: 3 / 4;
    position: relative;
}

/* Fill ratio box (Bootstrap img h-100 alone often collapses without a sized parent) */
.luxury-sidebar-timeline__thumb-ratio img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.luxury-sidebar-timeline__min-shrink {
  min-width: 0;
}

@media (min-width: 768px) {
    .luxury-sidebar-timeline__item--reverse {
        flex-direction: row-reverse;
    }
}

/* FAQ v11 — timeline layout helpers */
.faq-timeline__thumb {
    width: 4rem;
    height: 4rem;
}

.faq-timeline__line {
    left: 2rem;
    width: 0.125rem;
}

@media (min-width: 768px) {
    .faq-timeline__line {
        left: 50%;
        transform: translateX(-50%);
    }
}

