.elca-app,
.elca-app * {
    box-sizing: border-box;
}

.elca-app {
    --p: #6d43d8;
    --pd: #4e2ab6;
    --pl: #8b5cf6;
    --ps: #f5f3ff;
    --b: #e5e7eb;
    --t: #111827;
    --m: #6b7280;
    --g: #16a34a;

    direction: rtl;
    color: var(--t);
    font-family: inherit;
}

.elca-wrap {
    width: min(1500px, 100%);
    margin: auto;
    padding: 18px;

    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 18px;

    background: #f7f8fc;
    border-radius: 28px;
}

.elca-side,
.elca-hero,
.elca-budget,
.elca-filters,
.elca-card,
.elca-stage,
.elca-panel {
    background: #fff;
    border: 1px solid var(--b);
    box-shadow: 0 18px 45px rgba(17, 24, 39, .06);
}

.elca-side {
    border-radius: 24px;
    padding: 24px;
    height: max-content;

    position: sticky;
    top: 20px;
}

.elca-brand {
    text-align: center;
}

.elca-brand-logo {
    width: min(190px, 100%);
    height: 88px;
    margin: 0 auto 17px;
    padding: 13px 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(109, 67, 216, .14);
    border-radius: 20px;

    background:
        radial-gradient(
            circle at top right,
            rgba(109, 67, 216, .1),
            transparent 58%
        ),
        #fff;

    box-shadow:
        0 14px 34px rgba(17, 24, 39, .07),
        0 0 0 5px rgba(109, 67, 216, .035);
}

.elca-brand-logo img {
    max-width: 155px;
    max-height: 60px;
    object-fit: contain;
}

.elca-brand h2 {
    margin: 0 0 8px;

    font-size: 23px;
    font-weight: 950;
    line-height: 1.65;
}

.elca-brand p {
    margin: 0;
    color: var(--m);
    line-height: 2;
}

.elca-side-actions {
    display: grid;
    gap: 8px;
    margin-top: 22px;
}

.elca-soft {
    --spot-x: 50%;
    --spot-y: 50%;
    --spot-color: rgba(109, 67, 216, .26);

    width: 100%;
    min-height: 48px;
    padding: 10px 14px;

    position: relative;
    isolation: isolate;
    overflow: hidden;

    border: 1px solid #d8ccff;
    border-radius: 14px;

    background: #fff;
    color: var(--p);

    font: inherit;
    font-weight: 900;

    cursor: pointer;

    box-shadow:
        0 8px 20px rgba(17, 24, 39, .045);

    transition:
        transform .26s cubic-bezier(.2,.8,.2,1),
        border-color .26s,
        box-shadow .26s,
        color .26s,
        background .26s;
}

.elca-soft::before {
    content: "";

    position: absolute;
    inset: -2px;
    z-index: -1;

    pointer-events: none;

    background:
        radial-gradient(
            135px circle at var(--spot-x) var(--spot-y),
            var(--spot-color) 0,
            rgba(109, 67, 216, .10) 34%,
            transparent 72%
        );

    opacity: 0;
    transform: scale(.82);

    transition:
        opacity .25s ease,
        transform .32s cubic-bezier(.2,.8,.2,1);
}

.elca-soft:hover,
.elca-soft:focus-visible {
    border-color: rgba(109, 67, 216, .62);
    color: #4e2ab6;
    background: #fbf9ff;

    transform: translateY(-3px) scale(1.012);

    box-shadow:
        0 16px 34px rgba(109, 67, 216, .16),
        0 0 0 4px rgba(109, 67, 216, .07);

    outline: 0;
}

.elca-soft:hover::before,
.elca-soft:focus-visible::before {
    opacity: 1;
    transform: scale(1);
}

.elca-soft:active {
    transform: translateY(-1px) scale(.995);
}

.elca-estimate-side,
.elca-sidebar-compare {
    --spot-color: rgba(255, 255, 255, .48);

    border: 1px solid rgba(255,255,255,.12);

    background:
        linear-gradient(
            135deg,
            var(--p),
            var(--pd)
        );

    color: #fff;

    box-shadow:
        0 12px 24px rgba(109, 67, 216, .18);
}

.elca-estimate-side::before,
.elca-sidebar-compare::before {
    background:
        radial-gradient(
            145px circle at var(--spot-x) var(--spot-y),
            rgba(255,255,255,.52) 0,
            rgba(255,255,255,.16) 30%,
            transparent 72%
        );
}

.elca-estimate-side:hover,
.elca-estimate-side:focus-visible,
.elca-sidebar-compare:hover,
.elca-sidebar-compare:focus-visible {
    color: #fff;
    border-color: rgba(255,255,255,.38);

    background:
        linear-gradient(
            135deg,
            #7b50e6,
            #4520aa
        );

    box-shadow:
        0 18px 38px rgba(78, 42, 182, .31),
        0 0 0 4px rgba(109, 67, 216, .11);
}

@media (prefers-reduced-motion: reduce) {
    .elca-soft,
    .elca-soft::before {
        transition: none !important;
    }

    .elca-soft:hover,
    .elca-soft:focus-visible {
        transform: none;
    }
}

.elca-main {
    min-width: 0;
}

.elca-hero {
    min-height: 260px;
    border-radius: 26px;
    padding: 35px;

    text-align: center;

    background:
        radial-gradient(
            circle at 12% 25%,
            rgba(109, 67, 216, .22),
            transparent 26%
        ),
        linear-gradient(
            135deg,
            #fff,
            #f6f2ff
        );
}

.elca-hero small {
    color: var(--p);
    font-weight: 900;
}

.elca-hero h1 {
    font-size: clamp(30px, 4vw, 50px);
    margin: 10px 0;
    line-height: 1.4;
}

.elca-hero p {
    color: var(--m);
}

.elca-budget {
    width: min(720px, calc(100% - 20px));

    margin: -50px auto 16px;
    border-radius: 22px;
    padding: 20px;

    position: relative;
}

.elca-budget label {
    font-weight: 900;
}

.elca-budget > div {
    display: flex;
    align-items: center;

    border: 1px solid var(--b);
    border-radius: 16px;

    margin-top: 10px;
    overflow: hidden;
}

.elca-budget input[type="text"] {
    flex: 1;

    border: 0 !important;
    padding: 16px !important;

    font-size: 22px;
    font-weight: 900;

    direction: ltr;
    text-align: left;

    outline: 0;
    box-shadow: none !important;
}

.elca-budget span {
    padding: 0 14px;
    color: var(--m);
}

.elca-budget input[type="range"] {
    width: 100%;
    accent-color: var(--p);
    margin-top: 14px;
}

.elca-filters {
    border-radius: 22px;
    padding: 14px;

    display: grid;
    grid-template-columns: repeat(5, 1fr) 150px;
    gap: 10px;
}

.elca-filters select,
.elca-filters input,
.elca-toolbar select {
    height: 46px;
    border: 1px solid var(--b);
    border-radius: 14px;
    padding: 0 12px;

    background: #fff;
    color: var(--t);

    font: inherit;
}

.elca-filters button,
.elca-estimate-cta button {
    border: 0;
    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            var(--p),
            var(--pd)
        );

    color: #fff;

    font: inherit;
    font-weight: 900;

    cursor: pointer;

    box-shadow:
        0 12px 24px rgba(109, 67, 216, .18);
}

.elca-estimate-cta {
    margin: 16px 0;
    padding: 18px 20px;

    display: grid;
    grid-template-columns: 64px 1fr auto;
    align-items: center;
    gap: 16px;

    border: 1px solid #ddd5ff;
    border-radius: 22px;

    background:
        radial-gradient(
            circle at left center,
            rgba(109, 67, 216, .15),
            transparent 36%
        ),
        linear-gradient(
            135deg,
            #fff,
            #faf8ff
        );

    box-shadow:
        0 14px 36px rgba(17, 24, 39, .05);
}

.elca-estimate-cta-icon {
    width: 58px;
    height: 58px;

    display: grid;
    place-items: center;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            var(--p),
            var(--pd)
        );

    color: #fff;

    font-size: 26px;
    font-weight: 950;
}

.elca-estimate-cta h3 {
    margin: 4px 0;
    font-size: 22px;
}

.elca-estimate-cta p {
    margin: 0;
    color: var(--m);
    line-height: 1.9;
}

.elca-estimate-cta button {
    min-height: 46px;
    padding: 10px 18px;
}

.elca-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;

    margin: 20px 0 14px;
}

.elca-stage {
    border-radius: 26px;
    padding: 18px;
    min-height: 160px;
}

.elca-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.elca-card {
    border-radius: 22px;
    overflow: hidden;
    position: relative;
    transition: .22s;
    content-visibility: auto;
    contain-intrinsic-size: auto 390px;
}

.elca-card:hover {
    transform: translateY(-4px);

    box-shadow:
        0 22px 52px rgba(17, 24, 39, .11);

    border-color:
        rgba(109, 67, 216, .3);
}

.elca-img {
    height: 185px;
    background: #fbfbff;

    display: grid;
    place-items: center;

    padding: 10px;
    cursor: pointer;
}

.elca-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.elca-card-body {
    padding: 15px;
}

.elca-card h4 {
    margin: 0 0 8px;

    font-size: 18px;
    line-height: 1.6;

    cursor: pointer;
}

.elca-meta {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;

    color: var(--m);
    font-size: 13px;
}

.elca-price {
    color: var(--g);

    font-size: 18px;
    font-weight: 950;

    margin: 10px 0;
}

.elca-note {
    color: var(--m);
    line-height: 1.9;
    font-size: 13px;
    min-height: 48px;
}

.elca-match {
    position: absolute;
    top: 12px;
    right: 12px;

    background: #dcfce7;
    color: #15803d;

    border-radius: 999px;
    padding: 7px 10px;

    font-weight: 900;
    font-size: 12px;

    z-index: 2;
}

.elca-fav {
    position: absolute;
    top: 10px;
    left: 10px;

    width: 38px;
    height: 38px;

    border-radius: 50%;
    border: 1px solid var(--b);

    background: #fff;

    cursor: pointer;
    z-index: 2;
}

.elca-fav.on {
    color: #e11d48;
    background: #fff1f2;
}

.elca-actions {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.elca-app button {
    font-family: inherit;
}

.elca-actions button,
.elca-detail button,
.elca-compare-page button,
.elca-comparison-result button,
.elca-estimator-page button,
.elca-estimate-result button {
    min-height: 42px;
    border: 1px solid #d8ccff;
    border-radius: 13px;

    background: #fff;
    color: var(--p);

    font-weight: 900;
    cursor: pointer;

    padding: 8px 12px;
    transition: .2s;
}

.elca-actions .elca-detail-btn,
.elca-app [data-compare],
.elca-app [data-run-comparison],
.elca-app [data-estimate-submit],
.elca-app [data-use-estimate] {
    border: 0;

    background:
        linear-gradient(
            135deg,
            var(--p),
            var(--pd)
        );

    color: #fff;

    box-shadow:
        0 12px 24px rgba(109, 67, 216, .18);
}

.elca-load {
    display: none;

    background: #fff;

    border: 1px dashed #c7d2fe;
    border-radius: 18px;

    padding: 18px;
    margin: 12px 0;
}

.elca-load.on {
    display: block;
}

.elca-empty {
    grid-column: 1 / -1;

    background: #fff;
    border: 1px dashed #c7d2fe;
    border-radius: 22px;

    padding: 35px;

    text-align: center;
    color: var(--m);
}

.elca-detail-top {
    display: grid;
    grid-template-columns: 1fr 370px;
    gap: 20px;
}

.elca-detail-img {
    border: 1px solid var(--b);
    border-radius: 22px;

    background: #fbfbff;

    display: grid;
    place-items: center;

    min-height: 350px;
    padding: 16px;
}

.elca-detail-img img {
    max-width: 100%;
    max-height: 360px;
    object-fit: contain;
}

.elca-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.elca-tags span {
    background: #f1ecff;
    color: var(--p);

    border-radius: 999px;
    padding: 7px 12px;

    font-weight: 800;
    font-size: 13px;
}

.elca-detail h2 {
    font-size: clamp(26px, 4vw, 42px);
    line-height: 1.4;
    margin: 14px 0;
}

.elca-big-price {
    background: #f8fafc;

    border: 1px solid var(--b);
    border-radius: 20px;

    padding: 16px;
    margin: 14px 0;
}

.elca-big-price strong {
    display: block;
    color: var(--g);

    font-size: 28px;
    margin: 6px 0;
}

.elca-detail-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.elca-specs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;

    margin-top: 18px;
}

.elca-spec {
    border: 1px solid var(--b);
    border-radius: 16px;
    padding: 13px;
}

.elca-spec small {
    display: block;
    color: var(--m);
    margin-bottom: 6px;
}

.elca-texts {
    display: grid;
    grid-template-columns: 1.2fr .8fr .8fr;
    gap: 12px;

    margin-top: 15px;
}

.elca-text {
    border: 1px solid var(--b);
    border-radius: 18px;
    padding: 15px;
    line-height: 2;
}

.elca-panel {
    display: none;

    border-radius: 26px;
    padding: 22px;
    margin-top: 18px;
}

.elca-panel.on {
    display: block;
}

/* Loader */

.elca-progress-loader {
    min-height: 370px;
    border-radius: 24px;

    display: grid;
    place-items: center;

    padding: 35px 20px;
    text-align: center;

    background:
        radial-gradient(
            circle at center,
            rgba(109, 67, 216, .14),
            transparent 43%
        ),
        linear-gradient(
            135deg,
            #fff,
            #faf8ff
        );
}

.elca-progress-inner {
    width: min(520px, 95%);
}

.elca-progress-circle {
    width: 145px;
    height: 145px;

    margin: 0 auto 25px;

    border-radius: 50%;

    display: grid;
    place-items: center;

    position: relative;

    background:
        conic-gradient(
            var(--p) var(--progress, 0%),
            #ece8f8 0
        );

    box-shadow:
        0 18px 50px rgba(109, 67, 216, .17);
}

.elca-progress-circle::before {
    content: "";

    position: absolute;
    inset: 11px;

    border-radius: 50%;
    background: #fff;
}

.elca-progress-number {
    position: relative;
    z-index: 2;

    font-size: 34px;
    font-weight: 950;

    color: var(--p);
    direction: ltr;
}

.elca-progress-track {
    width: 100%;
    height: 12px;

    background: #ece8f8;

    border-radius: 999px;
    overflow: hidden;

    margin: 20px 0 0;
}

.elca-progress-fill {
    width: 0;
    height: 100%;

    border-radius: 999px;

    background:
        linear-gradient(
            90deg,
            var(--p),
            #9b7bea
        );

    transition: width .15s;
}

/* صفحات مقایسه و تخمین */

.elca-compare-page,
.elca-comparison-result,
.elca-estimator-page,
.elca-estimate-result {
    min-height: 500px;

    background:
        radial-gradient(
            circle at top right,
            rgba(109, 67, 216, .1),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #fff,
            #fbfaff
        );

    border: 1px solid var(--b);
    border-radius: 24px;

    padding: 22px;

    box-shadow:
        0 18px 45px rgba(17, 24, 39, .06);
}

.elca-page-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 15px;

    margin-bottom: 18px;
    padding-bottom: 18px;

    border-bottom: 1px solid var(--b);
}

.elca-page-head h2 {
    margin: 0 0 8px;

    font-size: clamp(25px, 3vw, 38px);
    font-weight: 950;
}

.elca-page-head p {
    margin: 0;
    color: var(--m);
    line-height: 2;
}

/* لیست برند */

.elca-brand-search {
    position: relative;
    margin-bottom: 18px;
}

.elca-brand-search input {
    width: 100%;
    height: 54px;

    padding: 0 48px 0 16px;

    border: 1px solid var(--b);
    border-radius: 18px;

    background: #fff;
    font: inherit;

    box-shadow:
        0 10px 24px rgba(17, 24, 39, .04);
}

.elca-brand-search::before {
    content: "⌕";

    position: absolute;
    right: 17px;
    top: 9px;

    font-size: 28px;
    color: var(--p);
}

.elca-brand-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 13px;
}

.elca-brand-card {
    position: relative;

    min-height: 132px;
    padding: 16px;

    border: 1px solid var(--b) !important;
    border-radius: 22px !important;

    background: #fff !important;
    color: var(--t) !important;

    text-align: center;

    overflow: hidden;

    box-shadow:
        0 10px 24px rgba(17, 24, 39, .04);

    animation:
        elcaRise .45s both;

    content-visibility: auto;
    contain-intrinsic-size: auto 132px;
}

.elca-brand-card::after {
    content: "";

    position: absolute;
    right: -25px;
    bottom: -45px;

    width: 90px;
    height: 90px;

    border-radius: 50%;

    background:
        rgba(109, 67, 216, .08);

    transition: .25s;
}

.elca-brand-card:hover {
    transform:
        translateY(-5px) !important;

    border-color:
        rgba(109, 67, 216, .35) !important;

    box-shadow:
        0 18px 36px rgba(17, 24, 39, .09);
}

.elca-brand-card:hover::after {
    transform: scale(1.45);
}

.elca-brand-logo-box {
    width: 62px;
    height: 62px;

    margin: 0 auto 10px;

    display: grid;
    place-items: center;

    border-radius: 18px;

    background: #faf8ff;
    border: 1px solid #eee9ff;
}

.elca-brand-logo-box img {
    max-width: 45px;
    max-height: 45px;
    object-fit: contain;
}

.elca-brand-card strong {
    display: block;
    font-size: 15px;
}

.elca-brand-card small {
    color: var(--m);
}

/* مدل‌ها */

.elca-model-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.elca-model-card {
    padding: 17px;

    border: 1px solid var(--b) !important;
    border-radius: 20px !important;

    background: #fff !important;
    color: var(--t) !important;

    text-align: right;

    box-shadow:
        0 10px 24px rgba(17, 24, 39, .04);

    animation:
        elcaRise .4s both;

    content-visibility: auto;
    contain-intrinsic-size: auto 118px;
}

.elca-model-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.elca-model-more-wrap button {
    min-width: 220px;
    min-height: 48px;
    padding: 10px 22px;
    border: 0;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--p), var(--pd));
    color: #fff;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 12px 24px rgba(109, 67, 216, .18);
}

.elca-model-more-wrap button:disabled {
    opacity: .65;
    cursor: wait;
}

.elca-model-card:hover {
    transform:
        translateY(-4px) !important;

    border-color:
        rgba(109, 67, 216, .35) !important;
}

.elca-model-card h4 {
    margin: 0 0 7px;
    font-size: 16px;
}

.elca-model-card p {
    margin: 0;
    color: var(--m);
    font-size: 12px;
    line-height: 1.8;
}

.elca-model-card .elca-model-variant-features {
    margin-bottom: 7px;
    color: var(--p);
    font-weight: 850;
}

.elca-model-price {
    margin-top: 10px;

    color: var(--g);
    font-weight: 950;
}

/* مراحل */

.elca-stepper {
    display: flex;
    gap: 8px;

    margin-bottom: 18px;
    overflow: auto;
}

.elca-step {
    display: flex;
    align-items: center;
    gap: 8px;

    padding: 8px 12px;

    border-radius: 999px;

    background: #f3f4f6;
    color: #6b7280;

    white-space: nowrap;
}

.elca-step.on {
    background: #ede9fe;
    color: var(--p);
    font-weight: 900;
}

.elca-step b {
    width: 25px;
    height: 25px;

    display: grid;
    place-items: center;

    border-radius: 50%;
    background: #fff;
}

/* فرم تخمین */

.elca-estimator-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.elca-estimator-field {
    display: grid;
    gap: 7px;
}

.elca-estimator-field label {
    font-size: 13px;
    font-weight: 900;
}

.elca-estimator-field input,
.elca-estimator-field select {
    width: 100%;
    height: 50px;

    padding: 0 13px;

    border: 1px solid var(--b);
    border-radius: 15px;

    background: #fff;
    font: inherit;

    transition: .2s;
}

.elca-estimator-field input:focus,
.elca-estimator-field select:focus {
    outline: 0;
    border-color: var(--p);

    box-shadow:
        0 0 0 4px rgba(109, 67, 216, .1);
}

.elca-estimator-field.wide,
.elca-estimator-actions {
    grid-column: 1 / -1;
}

.elca-estimator-actions {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}

.elca-selected-vehicle {
    grid-column: 1 / -1;

    display: grid;
    grid-template-columns: 90px 1fr;
    align-items: center;
    gap: 14px;

    padding: 14px;

    border: 1px solid #ddd5ff;
    border-radius: 20px;

    background: #faf8ff;
}

.elca-selected-vehicle img {
    width: 80px;
    height: 80px;
    object-fit: contain;
}

.elca-manual-price {
    display: none;
}

.elca-manual-price.on {
    display: grid;
}

/* نتیجه تخمین */

.elca-estimate-summary {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 16px;
}

.elca-estimate-main-card,
.elca-estimate-breakdown {
    padding: 20px;

    border: 1px solid var(--b);
    border-radius: 22px;

    background: #fff;
}

.elca-estimate-main-card > strong {
    display: block;

    margin: 8px 0;

    color: var(--p);

    font-size: clamp(30px, 5vw, 52px);
}

.elca-estimate-range {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;

    margin-top: 18px;
}

.elca-estimate-range > div {
    padding: 12px;

    border: 1px solid var(--b);
    border-radius: 15px;
}

.elca-adjustment {
    display: flex;
    justify-content: space-between;

    padding: 10px 0;

    border-bottom:
        1px solid #f0f1f4;
}

.elca-adjustment .positive {
    color: #15803d;
}

.elca-adjustment .negative {
    color: #dc2626;
}

.elca-estimate-budget-card {
    margin-top: 16px;
    padding: 18px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    border-radius: 20px;

    background:
        linear-gradient(
            135deg,
            var(--p),
            var(--pd)
        );

    color: #fff;
}

.elca-estimate-budget-card strong {
    font-size: 24px;
}

.elca-estimate-budget-card button {
    background: #fff;
    color: var(--p);
}


.elca-model-select-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    margin-top: 12px;
    padding: 7px 11px;

    border-radius: 999px;

    background: #f1ecff;
    color: var(--p);

    font-size: 12px;
    font-weight: 900;
}

.elca-ai-summary {
    display: grid;
    grid-template-columns: 1.4fr .8fr .8fr;
    gap: 12px;

    margin-bottom: 16px;
}

.elca-ai-summary > div {
    padding: 16px;

    border: 1px solid #ddd5ff;
    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #fff,
            #faf8ff
        );
}

.elca-ai-summary small {
    display: block;
    margin-bottom: 7px;
    color: var(--m);
}

.elca-ai-summary strong {
    display: block;
    line-height: 1.9;
}

.elca-fallback-reference {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 14px;

    margin: 0 0 16px;
    padding: 17px 18px;

    border: 1px solid #d8ccff;
    border-radius: 18px;

    background:
        radial-gradient(
            circle at left center,
            rgba(109, 67, 216, .14),
            transparent 38%
        ),
        linear-gradient(
            135deg,
            #fff,
            #faf8ff
        );

    box-shadow:
        0 12px 28px rgba(109, 67, 216, .08);
}

.elca-fallback-reference small {
    display: block;
    color: var(--m);
    margin-bottom: 5px;
}

.elca-fallback-reference strong {
    display: block;
    color: var(--p);
    font-size: 18px;
    line-height: 1.8;
}

.elca-fallback-reference-price {
    min-width: 190px;
    padding: 11px 14px;

    border-radius: 14px;
    background: #fff;
    border: 1px solid #e7e1ff;

    text-align: center;
}

.elca-fallback-reference-price b {
    display: block;
    color: var(--g);
    font-size: 17px;
    margin-top: 4px;
}

/* مقایسه */

.elca-compare-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.elca-compare-card {
    padding: 14px;

    border: 1px solid var(--b);
    border-radius: 18px;

    background: #fff;
}

.elca-compare-card img {
    width: 100%;
    height: 110px;
    object-fit: contain;
}

.elca-compare-card.on {
    border-color: var(--p);

    box-shadow:
        0 0 0 3px rgba(109, 67, 216, .1);
}

.elca-comparison-table-wrap {
    overflow: auto;

    border: 1px solid var(--b);
    border-radius: 18px;
}

.elca-comparison-table {
    border-collapse: collapse;

    min-width: 850px;
    width: max-content;
}

.elca-comparison-table th,
.elca-comparison-table td {
    min-width: 200px;

    padding: 13px;

    border-left: 1px solid var(--b);
    border-bottom: 1px solid var(--b);

    text-align: center;
}

.elca-comparison-table th:first-child,
.elca-comparison-table td:first-child {
    position: sticky;
    right: 0;

    background: #f8fafc;

    z-index: 2;
    min-width: 150px;
}

.elca-comparison-table img {
    width: 160px;
    height: 95px;
    object-fit: contain;
}

.elca-comparison-table th small {
    display: block;
    max-width: 220px;
    margin: 5px auto 0;
    color: var(--m);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.elca-compare-slot small {
    display: block;
    max-width: 100%;
    color: var(--m);
    font-size: 11px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.elca-compare-picker-card {
    content-visibility: auto;
    contain-intrinsic-size: auto 92px;
}

.elca-compare-picker-card small {
    display: block;
    margin-top: 3px;
    color: var(--m);
    font-size: 11px;
    line-height: 1.55;
}

.elca-compare-picker-card small:first-of-type {
    color: var(--p);
    font-weight: 800;
}

.elca-compare-more {
    grid-column: 1 / -1;
    min-height: 46px;
    padding: 10px 16px;
    border: 1px solid #d8ccff;
    border-radius: 14px;
    background: #fff;
    color: var(--p);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

@keyframes elcaRise {
    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 1200px) {
    .elca-brand-grid {
        grid-template-columns:
            repeat(4, 1fr);
    }

    .elca-model-grid,
    .elca-compare-list {
        grid-template-columns:
            repeat(3, 1fr);
    }
}

@media (max-width: 1100px) {
    .elca-wrap {
        grid-template-columns: 1fr;
    }

    .elca-side {
        position: static;
    }

    .elca-filters {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .elca-filters button {
        grid-column: 1 / -1;
        min-height: 46px;
    }

    .elca-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .elca-detail-top,
    .elca-texts,
    .elca-estimate-summary,
    .elca-ai-summary {
        grid-template-columns: 1fr;
    }

    .elca-specs {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .elca-estimator-form {
        grid-template-columns:
            repeat(2, 1fr);
    }
}

@media (max-width: 760px) {
    .elca-estimate-cta {
        grid-template-columns:
            54px 1fr;
    }

    .elca-estimate-cta button {
        grid-column: 1 / -1;
        width: 100%;
    }

    .elca-page-head {
        display: block;
    }

    .elca-page-head button {
        margin-top: 12px;
    }

    .elca-brand-grid {
        grid-template-columns:
            repeat(3, 1fr);
    }

    .elca-model-grid,
    .elca-compare-list {
        grid-template-columns:
            repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .elca-wrap {
        padding: 10px;
        border-radius: 0;
    }

    .elca-grid,
    .elca-filters,
    .elca-specs,
    .elca-detail-actions,
    .elca-estimator-form,
    .elca-model-grid,
    .elca-compare-list {
        grid-template-columns: 1fr;
    }

    .elca-toolbar {
        display: block;
    }

    .elca-toolbar select {
        width: 100%;
        margin-top: 10px;
    }

    .elca-brand-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .elca-estimate-range {
        grid-template-columns: 1fr;
    }

    .elca-estimate-budget-card {
        flex-direction: column;
        align-items: stretch;
    }

    .elca-fallback-reference {
        grid-template-columns: 1fr;
    }

    .elca-fallback-reference-price {
        min-width: 0;
        text-align: right;
    }

    .elca-estimator-actions {
        display: grid;
    }

    .elca-brand-logo {
        width: min(170px, 100%);
        height: 80px;
    }

    .elca-app,
    .elca-wrap,
    .elca-main,
    .elca-stage,
    .elca-compare-workspace,
    .elca-compare-auto-table {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

@media (hover: none), (pointer: coarse) {
    .elca-card,
    .elca-brand-card,
    .elca-model-card,
    .elca-soft {
        animation: none !important;
        transition: none !important;
    }

    .elca-soft::before {
        display: none;
    }

    .elca-card:hover,
    .elca-brand-card:hover,
    .elca-model-card:hover,
    .elca-soft:hover,
    .elca-soft:focus-visible {
        transform: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .elca-app *,
    .elca-app *::before,
    .elca-app *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
