/* ── Icon Box Carousel ── */
.ibc-wrapper {
    position: relative;
    /* overflow: hidden; */
    /* Removing overflow:hidden to prevent dots/arrows from being cut off */
}

.ibc-track-outer {
    position: relative;
    display: flex;
    align-items: center;
}

.ibc-track-outer.has-side-arrows {
    padding: 0 60px;
}

.ibc-track-clip {
    overflow: hidden;
    width: 100%;
}

.ibc-track {
    display: flex;
    will-change: transform;
    transition: transform var(--ibc-speed, 700ms) var(--ibc-ease, cubic-bezier(0.77, 0, 0.175, 1));
}

.ibc-slide {
    flex-shrink: 0;
    box-sizing: border-box;
    padding: 8px calc(var(--ibc-gap, 24px) / 2);
    transition: transform var(--ibc-speed, 700ms) var(--ibc-ease, cubic-bezier(0.77, 0, 0.175, 1)),
        opacity var(--ibc-speed, 700ms) ease;
}

/* ── Card ── */
.ibc-card {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1),
        box-shadow 0.5s cubic-bezier(0.23, 1, 0.32, 1),
        background 0.3s ease;
    cursor: default;
    will-change: transform;
    border-top: 4px solid var(--card-accent, transparent);
}

/* Hover transforms */
.ibc-wrapper[data-hover="lift"] .ibc-card:hover {
    transform: translateY(-8px);
}

.ibc-wrapper[data-hover="scale"] .ibc-card:hover {
    transform: scale(1.04);
}

.ibc-wrapper[data-hover="tilt"] .ibc-card:hover {
    transform: perspective(800px) rotateY(-4deg) rotateX(2deg) translateY(-6px);
}

/* ── Icon ── */
.ibc-icon-wrap {
    position: relative;
}

.ibc-icon-top-right .ibc-icon {
    position: absolute;
    top: -12px;
    right: -5px;
}

.ibc-icon-top-left .ibc-icon {
    position: absolute;
    top: -12px;
    left: -5px;
}

.ibc-icon-top-center {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-top: -20px;
}

.ibc-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1);
    background-color: var(--ibc-icon-bg-item, var(--ibc-icon-bg-global, #E84B2A));
}

.ibc-card:hover .ibc-icon {
    transform: scale(1.1) rotate(-5deg);
}

.ibc-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Inline icon row */
.ibc-icon-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.ibc-icon-title-row .ibc-title {
    margin: 0;
}

/* ── Text ── */
.ibc-body {
    flex: 1;
}

.ibc-title {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    white-space: pre-line;
}

/* ── Arrows ── */
.ibc-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.3s ease, transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    position: relative;
    z-index: 2;
}

.ibc-arrow:hover {
    transform: scale(1.1);
}

.ibc-arrow:active {
    transform: scale(0.95);
}

.ibc-arrow svg {
    transition: stroke 0.3s ease;
}

.ibc-track-outer.has-side-arrows .ibc-prev {
    margin-right: 12px;
}

.ibc-track-outer.has-side-arrows .ibc-next {
    margin-left: 12px;
}

/* Absolute side arrows (full-bleed) */
.ibc-track-outer .ibc-prev.abs {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.ibc-track-outer .ibc-next.abs {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

/* Bottom nav */
.ibc-bottom-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

/* ── Dots ── */
.ibc-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.ibc-dot {
    border: none;
    padding: 0;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.3);
    transition: background 0.3s ease, transform 0.3s cubic-bezier(0.23, 1, 0.32, 1),
        width 0.3s cubic-bezier(0.23, 1, 0.32, 1);
    border-radius: 999px;
}

/* style variants */
.ibc-dots[data-style="circle"] .ibc-dot {
    border-radius: 50%;
}

.ibc-dots[data-style="square"] .ibc-dot {
    border-radius: 3px;
}

.ibc-dots[data-style="dash"] .ibc-dot {
    border-radius: 3px;
    width: 20px !important;
    height: 4px !important;
}

.ibc-dots[data-style="line"] .ibc-dot {
    border-radius: 3px;
    height: 4px !important;
}

.ibc-dots[data-style="line"] .ibc-dot.active {
    width: 32px !important;
}

.ibc-dots[data-style="circle"] .ibc-dot.active,
.ibc-dots[data-style="square"] .ibc-dot.active {
    transform: scale(1.4);
}

/* ── Drag cursor ── */
.ibc-track-clip.is-dragging {
    cursor: grabbing;
}

.ibc-track-clip.is-dragging .ibc-card {
    pointer-events: none;
}

/* ── Center mode ── */
.ibc-slide.center-active {
    z-index: 1;
}