/* Grid + gap: @sem may obfuscate Tailwind grid/gap */
.rotating-badge-grid {
    display: grid;
    width: 100%;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 768px) {
    .rotating-badge-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .rotating-badge-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .rotating-badge-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Badge: w-12 = 3rem — lift above card (bs had top-0) */
.philosophy-v4-badge-decor {
    top: -2.25rem;
}

.philosophy-rotate-badge {
    width: 3rem;
    height: 3rem;
}

.philosophy-bg__img {
    object-fit: cover;
}

/* v17 - terminal timeline: neon grid backdrop via line borders (no colored bg images, no hex) */
.steps-terminal-timeline__grid-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image:
        repeating-linear-gradient(to right, currentColor 0, currentColor 1px, transparent 1px, transparent 48px),
        repeating-linear-gradient(to bottom, currentColor 0, currentColor 1px, transparent 1px, transparent 48px);
    opacity: 0.06;
}

.steps-terminal-timeline__desc {
    min-height: 3em;
}

/* bs parity: Bootstrap has no pl-10 / -left-10 / w-4 h-4 / w-px equivalents,
   so exact offsets and sizes are expressed here in plain CSS (applies under
   both frameworks identically to the tw values already set). */
.console-rail__col {
    padding-left: 2.5rem;
}

.console-rail__row:last-child {
    margin-bottom: 0 !important;
}

.steps-terminal-timeline__line {
    width: 1px;
}

.steps-terminal-timeline__dot {
    position: absolute;
    left: -2.5rem;
    top: 0.25rem;
    width: 1rem;
    height: 1rem;
}

/* process kanban — geometric decor, icon/body sizing */
.process-kb__geo {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}
.process-kb__geo::before {
    content: '';
    position: absolute;
    width: 18rem;
    height: 18rem;
    border-radius: 50%;
    border: 3.5rem solid currentColor;
    opacity: 0.04;
    top: -7rem;
    right: -7rem;
}
.process-kb__geo::after {
    content: '';
    position: absolute;
    width: 10rem;
    height: 10rem;
    border: 2.5rem solid currentColor;
    opacity: 0.04;
    bottom: -3rem;
    left: -3rem;
}
.process-kb__icon {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
}
.process-kb__body {
    min-width: 0;
}

.dual-axis-node-timeline__dot {
    width: 1.5rem;
    height: 1.5rem;
}

.dual-axis-node-timeline__connector {
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4rem;
}

/* quote v9 — catalog grid accents (layout only, no colors) */

.quote-catalog__rule {
    height: 0.25rem;
    width: 4rem;
}
/* hover + focus affordances (layout/outline via theme token) */
@media (hover: hover) {
    .quote-catalog-root [role="listitem"]:hover,
    .quote-catalog-root article:hover,
    .quote-catalog-root [class*="quote-catalog__card"]:hover,
    .quote-catalog-root .quote-catalog__book:hover,
    .quote-catalog-root .quote-catalog__step:hover,
    .quote-catalog-root .quote-catalog__index-card:hover,
    .quote-catalog-root .quote-catalog__pill:hover,
    .quote-catalog-root .quote-catalog__item:hover {
        transform: translateY(-0.125rem);
    }
}

.quote-catalog-root [role="listitem"],
.quote-catalog-root article,
.quote-catalog-root [class*="quote-catalog__card"],
.quote-catalog-root .quote-catalog__book,
.quote-catalog-root .quote-catalog__step,
.quote-catalog-root .quote-catalog__index-card,
.quote-catalog-root .quote-catalog__pill {
    transition: transform 200ms ease;
}

.quote-catalog-root a:focus-visible,
.quote-catalog-root button:focus-visible,
.quote-catalog-root [tabindex="0"]:focus-visible,
.quote-catalog-root input:focus-visible,
.quote-catalog-root summary:focus-visible,
.quote-catalog-root [role="slider"]:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

@media (hover: hover) {
    .quote-catalog-root button:hover,
    .quote-catalog-root a:hover,
    .quote-catalog-root summary:hover {
        opacity: 0.92;
    }
}

