:root {
    --cp-blue: #0066ff;
    --cp-blue-dark: #0b2e68;
    --cp-blue-soft: #eef6ff;
    --cp-blue-pale: #f6f9ff;
    --cp-orange: #ff8a00;
    --cp-green: #14a66a;
    --cp-text: #182337;
    --cp-muted: #667085;
    --cp-border: #e4e9f2;
    --cp-soft: #f7f8fb;
    --cp-radius: 12px;
    --cp-shadow: 0 8px 28px rgba(31, 55, 90, .08);
}

.cp-home {
    font-family: 'Poppins', sans-serif;
    color: var(--cp-text);
    background: #fff;
}

.cp-home h1,
.cp-home h2,
.cp-home h3,
.cp-home h4,
.cp-home h5,
.cp-home h6 {
    font-family: 'Poppins', sans-serif;
    color: var(--cp-text);
    font-weight: 700;
}

.cp-section {
    padding: 4.5rem 0;
}

.cp-section-white { background: #fff; }
.cp-section-soft { background: var(--cp-soft); }

.cp-kicker {
    display: inline-block;
    margin-bottom: .45rem;
    color: var(--cp-blue);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cp-kicker-light { color: rgba(255,255,255,.78); }

.cp-section-title {
    font-size: clamp(1.7rem, 2vw, 2.45rem);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.cp-section-copy {
    color: var(--cp-muted);
    line-height: 1.7;
}

.cp-btn-primary,
.cp-btn-outline,
.cp-btn-demo,
.cp-final-primary {
    border-radius: 8px;
    font-weight: 700;
    text-transform: none;
    box-shadow: none;
}

.cp-btn-primary {
    background: var(--cp-blue);
    border-color: var(--cp-blue);
}

.cp-btn-primary:hover,
.cp-btn-primary:focus {
    background: #0057da;
    border-color: #0057da;
}

.cp-btn-outline {
    color: var(--cp-blue);
    border-color: var(--cp-blue);
    background: #fff;
}

.cp-btn-demo {
    background: var(--cp-orange);
    border-color: var(--cp-orange);
    color: #fff;
}

.cp-btn-demo:hover,
.cp-btn-demo:focus {
    background: #e87900;
    border-color: #e87900;
    color: #fff;
}

/* HERO */
.cp-hero {
    background:
        radial-gradient(circle at 16% 10%, rgba(0,102,255,.08), transparent 34%),
        linear-gradient(180deg, #fff 0%, #fbfdff 100%);
    border-bottom: 1px solid var(--cp-border);
}

.cp-eyebrow {
    display: inline-flex;
    align-items: center;
    padding: .45rem .75rem;
    border-radius: 999px;
    background: #fff4e5;
    color: #a95b00;
    font-size: .78rem;
    font-weight: 700;
}

.cp-display {
    font-size: clamp(2.25rem, 5vw, 4.6rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.cp-display span { color: var(--cp-blue); }

.cp-lead {
    max-width: 44rem;
    color: #4e5b6e;
    font-size: clamp(1rem, 1.45vw, 1.2rem);
    line-height: 1.65;
}

.cp-hero-benefits {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    font-size: .84rem;
    color: #41506a;
}

.cp-hero-benefits div {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.cp-hero-benefits i { color: var(--cp-blue); }

.cp-hero-media { min-height: 100%; }

.cp-hero-image {
    min-height: 420px;
    object-fit: cover;
    border-radius: 26px 0 0 26px;
}

.cp-floating-card {
    position: absolute;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 12px;
    backdrop-filter: blur(8px);
}

.cp-floating-free {
    top: 1.25rem;
    right: 1.25rem;
    align-items: center;
    gap: .7rem;
    padding: .8rem 1rem;
}

.cp-floating-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #dcf9ed;
    color: var(--cp-green);
}

.cp-floating-card strong,
.cp-floating-card small { display: block; }
.cp-floating-card small { color: var(--cp-muted); font-size: .72rem; }

.cp-floating-listing {
    left: -2rem;
    bottom: 1.25rem;
    width: 205px;
    padding: .75rem;
}

.cp-floating-listing img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: .55rem;
}

.cp-mini-badge {
    display: inline-block;
    margin-bottom: .45rem;
    padding: .25rem .5rem;
    border-radius: 999px;
    background: var(--cp-orange);
    color: #fff;
    font-size: .62rem;
    font-weight: 700;
}

.cp-mini-meta { font-size: .72rem; color: var(--cp-muted); }
.cp-mini-price { margin-top: .2rem; color: var(--cp-blue); font-weight: 800; }

/* Listing cards */
.cp-listing-strip,
.cp-category-strip,
.cp-blog-strip,
.cp-logo-strip {
    display: grid;
    gap: 1rem;
}

.cp-listing-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.cp-listing-card {
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius);
    box-shadow: 0 4px 14px rgba(31,55,90,.04);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

.cp-listing-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--cp-shadow);
}

.cp-listing-image-wrap { position: relative; }

.cp-listing-card .card-img-top {
    aspect-ratio: 4/3;
    object-fit: cover;
}

.cp-listing-badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
    background: var(--cp-green);
    color: #fff;
}

.cp-favourite {
    position: absolute;
    right: .65rem;
    bottom: .65rem;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.95);
    color: #6f7c8f;
}

.cp-listing-title {
    font-size: 1rem;
    line-height: 1.35;
}

.cp-seller {
    color: var(--cp-blue);
    font-size: .78rem;
    font-weight: 600;
}

.cp-listing-meta {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    color: var(--cp-muted);
    font-size: .75rem;
}

.cp-listing-meta i { color: #9aa5b5; }
.cp-price { color: var(--cp-blue); font-size: 1.1rem; }

.cp-text-link {
    color: var(--cp-blue);
    font-weight: 700;
    font-size: .82rem;
    text-decoration: none;
}

.cp-carousel-btn {
    border: 1px solid var(--cp-border);
    color: var(--cp-blue);
    background: #fff;
}

/* Early access */
.cp-early-access { background: var(--cp-blue-soft); }

.cp-benefit-card {
    padding: 1.35rem;
    background: #fff;
    border: 1px solid rgba(0,102,255,.08);
    border-radius: var(--cp-radius);
}

.cp-benefit-card h3 {
    margin-top: 1rem;
    font-size: 1rem;
}

.cp-benefit-card p {
    margin: 0;
    color: var(--cp-muted);
    font-size: .88rem;
    line-height: 1.6;
}

.cp-icon-circle {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--cp-blue);
    color: #fff;
    font-size: 1.15rem;
}

.cp-icon-orange { background: var(--cp-orange); }
.cp-icon-green { background: var(--cp-green); }

/* Dealer */
.cp-dealer-panel {
    border-radius: 16px;
    background: linear-gradient(135deg, #0759ec, #003aaf);
    color: #fff;
    box-shadow: var(--cp-shadow);
}

.cp-dealer-panel h2 { color: #fff; font-size: clamp(1.8rem, 3vw, 2.65rem); }
.cp-dealer-panel p { color: rgba(255,255,255,.86); }

.cp-dealer-copy { padding: 2.4rem; }
.cp-dealer-benefits { color: rgba(255,255,255,.94); font-size: .87rem; }
.cp-dealer-benefits i { width: 24px; color: #fff; }

.cp-dealer-image,
.cp-buyer-image {
    width: 100%;
    height: 100%;
    min-height: 310px;
    object-fit: cover;
}

/* Value */
.cp-feature-list { display: grid; gap: 1.1rem; }

.cp-feature-item {
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: start;
    gap: .8rem;
}

.cp-feature-item > i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--cp-blue-soft);
    color: var(--cp-blue);
}

.cp-feature-item strong,
.cp-feature-item span { display: block; }
.cp-feature-item span { color: var(--cp-muted); font-size: .88rem; line-height: 1.55; }

.cp-value-visual img {
    border-radius: 16px;
    min-height: 390px;
    object-fit: cover;
}

.cp-value-strip {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    padding: .85rem;
    border-radius: 12px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
}

.cp-value-strip > div {
    display: grid;
    grid-template-columns: 32px 1fr;
    column-gap: .5rem;
    align-items: center;
}

.cp-value-strip i {
    grid-row: 1 / span 2;
    color: var(--cp-blue);
    font-size: 1.1rem;
}

.cp-value-strip strong { font-size: .86rem; }
.cp-value-strip span { color: var(--cp-muted); font-size: .68rem; }

/* Explore */
.cp-category-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.cp-category-card {
    display: block;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius);
    color: inherit;
}

.cp-category-card img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.cp-category-card div { padding: 1rem; }
.cp-category-card strong,
.cp-category-card span,
.cp-category-card em { display: block; }
.cp-category-card strong { font-size: 1rem; }
.cp-category-card span { color: var(--cp-muted); font-size: .8rem; }
.cp-category-card em { margin-top: .55rem; color: var(--cp-blue); font-size: .75rem; font-style: normal; font-weight: 700; }

.cp-quick-links {
    display: grid;
    gap: .8rem;
}

.cp-quick-links a {
    display: grid;
    grid-template-columns: 32px 1fr 20px;
    align-items: center;
    gap: .65rem;
    padding: 1rem;
    background: #fff;
    border: 1px solid var(--cp-border);
    border-radius: 10px;
    color: var(--cp-text);
    text-decoration: none;
}

.cp-quick-links a > i:first-child { color: var(--cp-blue); }
.cp-quick-links strong,
.cp-quick-links small { display: block; }
.cp-quick-links small { color: var(--cp-muted); font-size: .72rem; }
.cp-quick-links a > i:last-child { color: #9aa5b5; }

/* Manufacturer logos */
.cp-logo-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.cp-logo-card {
    min-height: 110px;
    display: grid;
    place-items: center;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: 10px;
    background: #fff;
}

.cp-logo-card img {
    max-width: 120px;
    max-height: 54px;
    object-fit: contain;
}

.cp-logo-more { color: var(--cp-blue); font-weight: 700; gap: .4rem; }

/* Buyer */
.cp-buyer-panel {
    border: 1px solid #dfe8fb;
    border-radius: 16px;
    background: linear-gradient(90deg, #f5f9ff, #eaf3ff);
}

.cp-buyer-copy { padding: 2.3rem; }
.cp-check-list { list-style: none; padding: 0; margin: 1.2rem 0 1.5rem; display: grid; gap: .55rem; }
.cp-check-list i { color: var(--cp-blue); margin-right: .45rem; }

/* Blog */
.cp-blog-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.cp-blog-card {
    overflow: hidden;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius);
    box-shadow: none;
}

.cp-blog-card img {
    aspect-ratio: 16/9;
    object-fit: cover;
}

.cp-blog-category {
    display: inline-block;
    margin-bottom: .6rem;
    color: var(--cp-blue);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.cp-blog-card h3 { font-size: 1rem; line-height: 1.4; }
.cp-blog-card p { color: var(--cp-muted); font-size: .84rem; line-height: 1.55; }

/* About */
.cp-about-panel {
    padding: 1.6rem;
    border-radius: 16px;
    background: var(--cp-blue-pale);
}

.cp-about-image {
    border-radius: 12px;
    max-height: 300px;
    object-fit: cover;
}

/* Newsletter */
.cp-newsletter {
    display: grid;
    grid-template-columns: 1fr minmax(420px, .9fr);
    gap: 2rem;
    align-items: center;
    padding: 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 14px;
    background: #fff;
}

.cp-newsletter p { color: var(--cp-muted); font-size: .9rem; }
.cp-newsletter-form { display: grid; grid-template-columns: 1fr auto; gap: .65rem; }
.cp-newsletter-form .form-control { min-height: 48px; border-radius: 8px; }

/* Final CTA */
.cp-final-cta {
    background: linear-gradient(135deg, #0066ff 0%, #0046bf 70%, #022d7b 100%);
    color: #fff;
}

.cp-final-cta h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); }
.cp-final-cta p { color: rgba(255,255,255,.82); font-size: 1.05rem; }
.cp-final-primary { color: var(--cp-blue); }

.cp-journey-line {
    display: inline-block;
    color: #ffb44a;
    font-size: clamp(1.45rem, 2.6vw, 2.2rem);
    font-weight: 700;
    line-height: 1.12;
    transform: rotate(-3deg);
}

/* TABLET */
@media (max-width: 991.98px) {
    .cp-section { padding: 3.6rem 0; }
    .cp-display { font-size: clamp(2.2rem, 6vw, 3.6rem); }
    .cp-listing-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-category-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cp-logo-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cp-logo-card:nth-child(5) { display: none; }
    .cp-newsletter { grid-template-columns: 1fr; gap: 1rem; }
}

/* MOBILE */
@media (max-width: 767.98px) {
    .cp-section { padding: 3rem 0; }

    .cp-hero .container-xl { padding-top: 1.25rem !important; }
    .cp-display { font-size: clamp(2.2rem, 10vw, 3.25rem); }

    .cp-hero-benefits {
        grid-template-columns: 1fr;
        margin-bottom: .5rem;
    }

    .cp-hero-image {
        min-height: 280px;
        border-radius: 16px;
    }

    .cp-listing-strip,
    .cp-category-strip,
    .cp-blog-strip,
    .cp-logo-strip {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: .5rem;
    }

    .cp-listing-strip::-webkit-scrollbar,
    .cp-category-strip::-webkit-scrollbar,
    .cp-blog-strip::-webkit-scrollbar,
    .cp-logo-strip::-webkit-scrollbar { display: none; }

    .cp-listing-card {
        flex: 0 0 86%;
        scroll-snap-align: start;
    }

    .cp-category-card {
        flex: 0 0 82%;
        scroll-snap-align: start;
    }

    .cp-blog-card {
        flex: 0 0 86%;
        scroll-snap-align: start;
    }

    .cp-logo-card {
        flex: 0 0 46%;
        scroll-snap-align: start;
    }

    .cp-benefit-grid .col-12 { margin-bottom: 0; }
    .cp-benefit-card {
        display: grid;
        grid-template-columns: 46px 1fr;
        column-gap: .9rem;
        align-items: start;
        padding: 1rem;
    }

    .cp-benefit-card .cp-icon-circle { grid-row: 1 / span 2; }
    .cp-benefit-card h3 { margin: 0 0 .25rem; }
    .cp-benefit-card p { font-size: .82rem; }

    .cp-dealer-copy { padding: 1.6rem; }
    .cp-dealer-image { min-height: 220px; }

    .cp-value-strip {
        position: static;
        grid-template-columns: 1fr;
        margin-top: .75rem;
        background: #fff;
        border: 1px solid var(--cp-border);
    }

    .cp-value-visual img { min-height: 270px; }
    .cp-buyer-copy { padding: 1.5rem; }
    .cp-buyer-image { min-height: 220px; }

    .cp-newsletter { padding: 1.2rem; }
    .cp-newsletter-form { grid-template-columns: 1fr; }
    .cp-newsletter-form .btn { width: 100%; }

    .cp-final-cta .btn { width: 100%; }
    .cp-final-cta .btn-link { text-align: center; }
    .cp-journey-line { transform: none; }
}

@media (max-width: 575.98px) {
    .cp-display { letter-spacing: -.035em; }
    .cp-section-title { font-size: 1.7rem; }
    .cp-listing-card { flex-basis: 88%; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-listing-card { transition: none; }
}
