/* Comment: Default sizing variables */
.cc-compare-wrap .cc-compare-nav {
    --cc-tab-gap: 15px;
    --cc-tab-min-height: 110px;
}

/* Comment: Global box sizing inside comparison section */
.cc-compare-wrap,
.cc-compare-wrap *,
.cc-compare-wrap *::before,
.cc-compare-wrap *::after {
    box-sizing: border-box;
}

/* Comment: Main comparison layout for Elementor boxed container */
.cc-compare-wrap > .e-con-inner {
    display: flex;
    gap: 24px;
    align-items: stretch;
    width: 100%;
}

/* Comment: Left content column */
.cc-compare-wrap .cc-compare-content {
    min-width: 0;
    display: flex;
    align-self: stretch;
    width: 100%;
}

/* Comment: Right tabs column */
.cc-compare-wrap .cc-compare-nav {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--cc-tab-gap);
    align-self: stretch;
}

/* Comment: Panels are hidden by default */
.cc-compare-wrap .cc-compare-panel {
    display: none !important;
    width: 100%;
    padding: 20px;
    border: 1px solid #e7e7e7;
    border-radius: 10px;
    background: linear-gradient(135deg, #fff8fb 0%, #f5f9ff 100%);
    overflow: hidden;
}

/* Comment: Active panel is visible */
.cc-compare-wrap .cc-compare-panel.is-active {
    display: flex !important;
    flex-direction: column;
}

/* Comment: Tab card base style */
.cc-compare-wrap .cc-compare-tab {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    padding: 15px 18px 15px 52px;
    border: 1px solid #e7e7e7;
    border-radius: 10px;
    background: #fff;
    transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
    overflow: hidden;
    min-height: var(--cc-tab-min-height);
}

/* Comment: Hover state */
.cc-compare-wrap .cc-compare-tab:hover {
    border-color: #cfd9e3;
    transform: translateY(-1px);
}

/* Comment: Active tab style */
.cc-compare-wrap .cc-compare-tab.is-active {
    background: linear-gradient(135deg, #fff8fb 0%, #f5f9ff 100%);
    border-color: #d9e4ef;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
}

/* Comment: Circle indicator */
.cc-compare-wrap .cc-compare-tab::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 50%;
    width: 22px;
    height: 22px;
    border: 2px solid #b8c2cc;
    border-radius: 50%;
    background: transparent;
    transform: translateY(-50%);
    transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

/* Comment: Check mark */
.cc-compare-wrap .cc-compare-tab::after {
    content: "";
    position: absolute;
    left: 24px;
    top: 50%;
    width: 5px;
    height: 10px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translateY(-60%) rotate(45deg);
    opacity: 0;
    transition: opacity 0.2s ease;
}

/* Comment: Active circle state */
.cc-compare-wrap .cc-compare-tab.is-active::before {
    background: #143c3c;
    border-color: #143c3c;
}

/* Comment: Active check mark state */
.cc-compare-wrap .cc-compare-tab.is-active::after {
    opacity: 1;
}

/* Comment: Left card content */
.cc-compare-wrap .cc-tab-text {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 14px;
}

/* Comment: Prevent logo shrinking */
.cc-compare-wrap .cc-tab-text .elementor-widget-image,
.cc-compare-wrap .cc-tab-text img {
    flex-shrink: 0;
}

/* Comment: Right card content */
.cc-compare-wrap .cc-tab-side {
    flex: 0 0 auto;
    text-align: right;
    margin-left: auto;
}

/* Comment: Optional heading spacing inside tab */
.cc-compare-wrap .cc-compare-tab .elementor-heading-title {
    margin-bottom: 6px;
}

/* Comment: Remove bottom margin from last widget */
.cc-compare-wrap .cc-tab-text .elementor-widget:last-child,
.cc-compare-wrap .cc-tab-side .elementor-widget:last-child,
.cc-compare-wrap .cc-compare-panel .elementor-widget:last-child {
    margin-bottom: 0;
}

/* Comment: Desktop equal split after JS sets the nav height */
@media (min-width: 768px) {
    .cc-compare-wrap .cc-compare-tab {
        flex: 1 1 0;
    }
}

/* Comment: Tablet sizing tweaks */
@media (max-width: 1024px) {
    .cc-compare-wrap > .e-con-inner {
        gap: 18px;
    }

    .cc-compare-wrap .cc-compare-nav {
        --cc-tab-gap: 14px;
        --cc-tab-min-height: 95px;
    }

    .cc-compare-wrap .cc-compare-tab {
        gap: 14px;
        padding: 18px 16px 18px 50px;
    }

    .cc-compare-wrap .cc-compare-panel {
        padding: 24px;
    }
}

/* Comment: Mobile layout */
@media (max-width: 767px) {
    .cc-compare-wrap > .e-con-inner {
        flex-direction: column;
        gap: 16px;
    }

    .cc-compare-wrap .cc-compare-content {
        display: block;
        width: 100%;
        height: auto;
    }

    .cc-compare-wrap .cc-compare-nav {
        --cc-tab-gap: 12px;
        --cc-tab-min-height: 0;
        order: -1;
        width: 100%;
        min-width: 100%;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: stretch;
        overflow-x: auto;
        overflow-y: hidden;
        gap: var(--cc-tab-gap);
        padding: 0 0 6px 0;
        margin: 0;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        height: auto !important;
    }

    .cc-compare-wrap .cc-compare-nav::-webkit-scrollbar {
        display: none;
    }

    /* Comment: Cards stay in a horizontal slider */
    .cc-compare-wrap .cc-compare-tab {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        flex: 0 0 85%;
        min-width: 260px;
        max-width: 85%;
        min-height: 0;
        gap: 12px;
        padding: 18px 16px 18px 46px;
        margin: 0;
    }

    /* Comment: Move check icon to top-left on mobile */
    .cc-compare-wrap .cc-compare-tab::before {
        left: 14px;
        top: 18px;
        width: 20px;
        height: 20px;
        transform: none;
    }

    .cc-compare-wrap .cc-compare-tab::after {
        left: 20px;
        top: 22px;
        width: 5px;
        height: 9px;
        transform: rotate(45deg);
    }

    /* Comment: Stack logo and text vertically inside the card */
    .cc-compare-wrap .cc-tab-text {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    /* Comment: Right-side content also goes below */
    .cc-compare-wrap .cc-tab-side {
        width: 100%;
        margin-left: 0;
        text-align: left;
    }

    .cc-compare-wrap .cc-compare-panel {
        width: 100%;
        height: auto;
        padding: 24px 20px;
    }
}

/* Comment: Keep Elementor editor easy to work with */
body.elementor-editor-active .cc-compare-wrap .cc-compare-nav {
    height: auto !important;
    overflow: visible !important;
}

body.elementor-editor-active .cc-compare-wrap .cc-compare-panel {
    display: flex !important;
    flex-direction: column;
    height: auto !important;
    margin-bottom: 20px !important;
}

body.elementor-editor-active .cc-compare-wrap .cc-compare-tab {
    height: auto !important;
    min-height: 90px !important;
}

body.elementor-editor-active .cc-compare-wrap .cc-tab-text,
body.elementor-editor-active .cc-compare-wrap .cc-tab-side {
    width: 100% !important;
    margin-left: 0 !important;
    text-align: left !important;
}