/* =========================================================
   CHABIN / BRIGGS & STRATTON
   WSPÓLNY CSS KATALOGU
========================================================= */


/* =========================================================
   ZMIENNE
========================================================= */

:root {

    --red:
        #d71920;

    --red-dark:
        #b9141a;

    --black:
        #0d1014;

    --dark:
        #171b21;

    --background:
        #f5f6f8;

    --white:
        #ffffff;

    --border:
        #e4e7eb;

    --muted:
        #68717c;

    --text-light:
        #c6cbd2;

}


/* =========================================================
   RESET
========================================================= */

* {
    box-sizing: border-box;
}


html {
    margin: 0;
    padding: 0;
}


body {

    margin: 0;

    background:
        var(--background);

    color:
        var(--black);

    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;

}


img {
    max-width: 100%;
}


a {
    color: inherit;
}


/* =========================================================
   CONTAINER
========================================================= */

.container {

    width: 100%;

    max-width:
        1180px;

}


/* =========================================================
   HEADER
========================================================= */

.catalog-header {

    background:
        var(--white);

    border-bottom:
        1px solid
        var(--border);

}


.header-inner {

    min-height:
        82px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        30px;

}


.logo-bs {

    height:
        50px;

    width:
        auto;

    object-fit:
        contain;

}


.logo-chabin {

    height:
        42px;

    width:
        auto;

    object-fit:
        contain;

}


.header-divider {

    width:
        1px;

    height:
        34px;

    background:
        #e1e4e8;

    margin:
        0 8px;

}


/* =========================================================
   HERO — INDEX
========================================================= */

.hero {

    position:
        relative;

    overflow:
        hidden;

    background:

        radial-gradient(
            circle at 85% 25%,
            rgba(215,25,32,.18),
            transparent 34%
        ),

        linear-gradient(
            135deg,
            #0d1014,
            #1b2026
        );

    color:
        var(--white);

    padding:
        76px 0
        88px;

}


.hero::before {

    content:
        "";

    position:
        absolute;

    width:
        520px;

    height:
        520px;

    right:
        -260px;

    bottom:
        -330px;

    border-radius:
        50%;

    border:
        85px solid
        rgba(255,255,255,.025);

}


.hero-content {

    position:
        relative;

    z-index:
        2;

}


.hero-label {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        9px;

    color:
        #c7ccd3;

    font-size:
        .72rem;

    font-weight:
        800;

    letter-spacing:
        .13em;

    text-transform:
        uppercase;

    margin-bottom:
        20px;

}


.hero-label::before {

    content:
        "";

    width:
        28px;

    height:
        2px;

    background:
        var(--red);

}


.hero-title {

    max-width:
        850px;

    font-size:
        clamp(
            2.4rem,
            5vw,
            4.25rem
        );

    line-height:
        1.01;

    font-weight:
        850;

    letter-spacing:
        -.055em;

    margin:
        0 0 22px;

}


.hero-title span {

    color:
        var(--white);

}


.hero-description {

    max-width:
        700px;

    color:
        #b8bec7;

    font-size:
        1.08rem;

    line-height:
        1.7;

    margin-bottom:
        34px;

}


/* =========================================================
   SEARCH
========================================================= */

.search-area {

    max-width:
        880px;

}


.search-box {

    display:
        flex;

    background:
        var(--white);

    padding:
        7px;

    border-radius:
        16px;

    box-shadow:
        0 20px 55px
        rgba(0,0,0,.30);

}


.search-box input {

    min-height:
        58px;

    border:
        0 !important;

    box-shadow:
        none !important;

    font-size:
        1.05rem;

    padding:
        0 18px;

}


.search-box button {

    min-width:
        130px;

    border:
        0;

    border-radius:
        11px;

    background:
        var(--red);

    color:
        var(--white);

    font-weight:
        750;

    transition:
        .15s ease;

}


.search-box button:hover {

    background:
        var(--red-dark);

    color:
        var(--white);

    transform:
        translateY(-1px);

}


.search-help {

    color:
        #969da7;

    font-size:
        .78rem;

    margin-top:
        12px;

}


.search-help strong {

    color:
        #c6cbd2;

}


/* =========================================================
   MAIN
========================================================= */

.main {

    padding:
        55px 0
        85px;

}


/* =========================================================
   SECTION TITLES
========================================================= */

.section-label {

    color:
        var(--muted);

    font-size:
        .7rem;

    font-weight:
        850;

    letter-spacing:
        .13em;

    text-transform:
        uppercase;

    margin-bottom:
        7px;

}


.section-title {

    font-size:
        1.75rem;

    line-height:
        1.15;

    font-weight:
        850;

    letter-spacing:
        -.04em;

}


/* =========================================================
   SEARCH RESULTS
========================================================= */

.result-card {

    display:
        block;

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        17px;

    text-decoration:
        none;

    overflow:
        hidden;

    transition:

        transform .18s ease,

        box-shadow .18s ease,

        border-color .18s ease;

}


.result-card:hover {

    transform:
        translateY(-3px);

    border-color:
        #d1d5da;

    box-shadow:
        0 16px 38px
        rgba(16,19,24,.09);

}


.result-body {

    padding:
        24px;

}


.result-sku {

    color:
        var(--red);

    font-size:
        1.05rem;

    font-weight:
        850;

}


.result-name {

    font-size:
        1rem;

    font-weight:
        650;

    line-height:
        1.4;

    margin-top:
        6px;

}


.result-ean {

    color:
        var(--muted);

    font-size:
        .76rem;

    margin-top:
        8px;

}


.result-arrow {

    width:
        42px;

    height:
        42px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        50%;

    background:
        #f2f3f5;

    color:
        #4d5560;

    font-size:
        1.1rem;

    transition:
        .18s ease;

}


.result-card:hover
.result-arrow {

    background:
        var(--red);

    color:
        var(--white);

}


/* =========================================================
   AVAILABILITY
========================================================= */

.availability {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    padding:
        7px 11px;

    border-radius:
        999px;

    font-size:
        .72rem;

    font-weight:
        750;

}


.availability-dot {

    width:
        7px;

    height:
        7px;

    flex:
        0 0 7px;

    border-radius:
        50%;

    background:
        currentColor;

}


.availability-ok {

    background:
        #eaf7ef;

    color:
        #19723a;

}


.availability-external {

    background:
        #fff4d8;

    color:
        #8a5a00;

}


.availability-neutral {

    background:
        #f0f2f4;

    color:
        #68717c;

}


.availability-danger {

    background:
        #fdebec;

    color:
        #a71921;

}


.availability-replacement {

    background:
        #eaf1ff;

    color:
        #24569b;

}


/* =========================================================
   INTRO
========================================================= */

.intro-card {

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        20px;

    padding:
        38px;

    box-shadow:
        0 7px 30px
        rgba(16,19,24,.035);

}


.intro-icon {

    width:
        48px;

    height:
        48px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        14px;

    background:
        #fcebed;

    color:
        var(--red);

    font-size:
        1.25rem;

    margin-bottom:
        20px;

}


.intro-card h2 {

    font-weight:
        850;

    letter-spacing:
        -.035em;

}


.intro-card p {

    color:
        var(--muted);

    line-height:
        1.75;

}


/* =========================================================
   EMPTY
========================================================= */

.empty-card {

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        18px;

    text-align:
        center;

    padding:
        55px 30px;

}


.empty-icon {

    font-size:
        2rem;

    margin-bottom:
        15px;

}


.empty-card h2 {

    font-weight:
        850;

}


.empty-card p {

    color:
        var(--muted);

}


/* =========================================================
   PRODUCT PAGE — HERO
========================================================= */

.product-hero {

    position:
        relative;

    overflow:
        hidden;

    background:

        radial-gradient(
            circle at 85% 20%,
            rgba(215,25,32,.15),
            transparent 32%
        ),

        linear-gradient(
            135deg,
            #0d1014,
            #1b2026
        );

    color:
        var(--white);

    padding:
        60px 0
        70px;

}


.product-hero::after {

    content:
        "";

    position:
        absolute;

    width:
        450px;

    height:
        450px;

    right:
        -180px;

    top:
        -230px;

    border:
        80px solid
        rgba(215,25,32,.09);

    border-radius:
        50%;

}


.product-hero-content {

    position:
        relative;

    z-index:
        2;

}


.back-link {

    color:
        #aeb5be;

    text-decoration:
        none;

    font-size:
        .85rem;

}


.back-link:hover {

    color:
        var(--white);

}


.product-label {

    color:
        #aeb5be;

    font-size:
        .72rem;

    text-transform:
        uppercase;

    letter-spacing:
        .13em;

    font-weight:
        800;

    margin-top:
        35px;

}


.product-sku {

    color:
        var(--white);

    font-size:
        clamp(
            2rem,
            4vw,
            3.2rem
        );

    line-height:
        1;

    font-weight:
        850;

    letter-spacing:
        -.045em;

    margin-top:
        9px;

}


.product-name {

    max-width:
        850px;

    font-size:
        clamp(
            1.2rem,
            2vw,
            1.55rem
        );

    line-height:
        1.4;

    color:
        #c6cbd2;

    margin-top:
        16px;

}


/* =========================================================
   PRODUCT CARD
========================================================= */

.product-card {

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        22px;

    box-shadow:
        0 12px 45px
        rgba(16,19,24,.07);

    overflow:
        hidden;

}


.product-card-main {

    padding:
        34px;

}


.product-card-title {

    font-size:
        1.05rem;

    font-weight:
        850;

    letter-spacing:
        -.02em;

    margin-bottom:
        25px;

}


/* =========================================================
   PRICE
========================================================= */

.price-box {

    background:

        linear-gradient(
            135deg,
            #f8f9fa,
            #f1f3f5
        );

    border:
        1px solid
        #e3e6e9;

    border-radius:
        17px;

    padding:
        24px;

    margin-bottom:
        26px;

}


.price-label {

    color:
        var(--muted);

    font-size:
        .72rem;

    font-weight:
        800;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;

}


.price {

    font-size:
        clamp(
            2rem,
            4vw,
            2.8rem
        );

    line-height:
        1;

    font-weight:
        900;

    letter-spacing:
        -.055em;

    margin-top:
        9px;

}


.price-suffix {

    font-size:
        .9rem;

    color:
        var(--muted);

    font-weight:
        600;

    margin-left:
        4px;

}


.price-note {

    color:
        var(--muted);

    font-size:
        .72rem;

    margin-top:
        8px;

    line-height:
        1.5;

}


/* =========================================================
   PRODUCT DATA
========================================================= */

.data-grid {

    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        1px;

    background:
        var(--border);

    border:
        1px solid
        var(--border);

    border-radius:
        14px;

    overflow:
        hidden;

}


.data-item {

    background:
        var(--white);

    padding:
        17px;

}


.data-label {

    color:
        var(--muted);

    font-size:
        .7rem;

    margin-bottom:
        4px;

}


.data-value {

    font-size:
        .9rem;

    font-weight:
        750;

    word-break:
        break-word;

}


/* =========================================================
   STATUS ALERT
========================================================= */

.status-alert {

    border-radius:
        16px;

    padding:
        18px;

    margin-bottom:
        25px;

    font-size:
        .92rem;

    font-weight:
        750;

    line-height:
        1.45;

}


.status-title {

    font-size:
        .7rem;

    text-transform:
        uppercase;

    letter-spacing:
        .08em;

    font-weight:
        850;

    opacity:
        .65;

    margin-bottom:
        6px;

}


.status-success {

    background:
        #eaf7ef;

    color:
        #176c38;

    border:
        1px solid
        #c9ead5;

}


.status-warning {

    background:
        #fff4d8;

    color:
        #805500;

    border:
        1px solid
        #f0d99e;

}


.status-danger {

    background:
        #fdebec;

    color:
        #a71921;

    border:
        1px solid
        #f3c9cc;

}


.status-replacement {

    background:
        #eaf1ff;

    color:
        #24569b;

    border:
        1px solid
        #cbdcf7;

}


.status-unknown {

    background:
        #f0f2f4;

    color:
        #68717c;

    border:
        1px solid
        #e1e4e8;

}


/* =========================================================
   REPLACEMENT
========================================================= */

.replacement {

    margin-top:
        25px;

    padding:
        18px;

    border-radius:
        14px;

    background:
        #fff7e8;

    border:
        1px solid
        #f0d79c;

    color:
        #765716;

    font-size:
        .86rem;

}


.replacement-link {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    margin-top:
        13px;

    padding:
        10px 14px;

    border-radius:
        10px;

    background:
        rgba(255,255,255,.75);

    color:
        inherit;

    text-decoration:
        none;

    font-weight:
        850;

    transition:
        .15s ease;

}


.replacement-link:hover {

    background:
        var(--white);

    color:
        inherit;

    transform:
        translateX(2px);

}


/* =========================================================
   BUY CARD
========================================================= */

.buy-card {

    position:
        sticky;

    top:
        25px;

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        22px;

    padding:
        30px;

    box-shadow:
        0 12px 45px
        rgba(16,19,24,.07);

}


.buy-card h2 {

    font-size:
        1.3rem;

    font-weight:
        850;

    letter-spacing:
        -.035em;

}


.buy-card p {

    color:
        var(--muted);

    line-height:
        1.65;

    font-size:
        .9rem;

}


.buy-button {

    width:
        100%;

    border:
        0;

    border-radius:
        12px;

    padding:
        14px 20px;

    background:
        var(--red);

    color:
        var(--white);

    font-weight:
        850;

    font-size:
        .95rem;

    transition:
        .15s ease;

}


.buy-button:hover {

    background:
        var(--red-dark);

    color:
        var(--white);

    transform:
        translateY(-1px);

}


/* =========================================================
   PARTNERS
========================================================= */

.partners-section {

    margin-top:
        70px;

    scroll-margin-top:
        25px;

}


.partner-card {

    height:
        100%;

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        18px;

    padding:
        25px;

    transition:
        transform .18s ease,
        box-shadow .18s ease;

}


.partner-card:hover {

    transform:
        translateY(-3px);

    box-shadow:
        0 15px 35px
        rgba(16,19,24,.07);

}


.partner-name {

    font-size:
        1.05rem;

    font-weight:
        850;

}


.partner-city {

    color:
        var(--muted);

    font-size:
        .82rem;

    margin-top:
        4px;

    margin-bottom:
        17px;

}


.partner-contact {

    color:
        #4e5660;

    font-size:
        .86rem;

    line-height:
        1.9;

}


.partner-contact a {

    text-decoration:
        none;

}


.partner-contact a:hover {

    color:
        var(--red);

}


.partner-button {

    border-radius:
        9px;

    font-size:
        .78rem;

    font-weight:
        750;

    margin-top:
        14px;

}


/* =========================================================
   ERROR
========================================================= */

.error-card {

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        20px;

    padding:
        45px;

    text-align:
        center;

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767.98px) {


    /* HEADER */

    .header-inner {

        min-height:
            70px;

    }


    .logo-bs {

        height:
            40px;

    }


    .logo-chabin {

        height:
            32px;

    }


    .header-divider {

        margin:
            0 2px;

    }


    /* HERO */

    .hero {

        padding:
            52px 0
            58px;

    }


    .hero-title {

        font-size:
            2.45rem;

    }


    .hero-description {

        font-size:
            .98rem;

    }


    /* SEARCH */

    .search-box {

        display:
            block;

        padding:
            6px;

    }


    .search-box input {

        width:
            100%;

    }


    .search-box button {

        width:
            100%;

        margin-top:
            5px;

    }


    /* MAIN */

    .main {

        padding:
            38px 0
            60px;

    }


    /* INTRO */

    .intro-card {

        padding:
            28px;

    }


    /* RESULTS */

    .result-body {

        padding:
            20px;

    }


    /* PRODUCT */

    .product-hero {

        padding:
            45px 0
            55px;

    }


    .product-sku {

        font-size:
            2.25rem;

    }


    .product-card-main {

        padding:
            23px;

    }


    .buy-card {

        position:
            static;

    }


    .data-grid {

        grid-template-columns:
            1fr;

    }


    /* PARTNERS */

    .partners-section {

        margin-top:
            50px;

    }

}
/* =========================================================
   ERROR
========================================================= */

.error-card {
    max-width: 700px;
    margin: 40px auto;
    padding: 50px 35px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 7px 30px rgba(16,19,24,.035);
}

.error-icon {
    font-size: 3rem;
    margin-bottom: 15px;
}

.error-title {
    font-weight: 850;
    letter-spacing: -.035em;
}

.error-text {
    color: var(--muted);
    line-height: 1.7;
}


/* =========================================================
   REPLACEMENT ARROW
========================================================= */

.replacement-arrow {
    margin-left: 5px;
    font-weight: 900;
}
/* ==========================================================================
   FOOTER
   ========================================================================== */

.footer {

    background:
        #0d1014;

    color:
        #8f969f;

    margin-top:
        0;

    padding:
        55px 0 22px;

}


.footer-main {

    display:
        grid;

    grid-template-columns:
        1.6fr
        1fr
        1fr;

    gap:
        55px;

    padding-bottom:
        45px;

}


.footer-brand {

    max-width:
        390px;

}


.footer-logo {

    display:
        inline-flex;

    align-items:
        center;

    text-decoration:
        none;

    margin-bottom:
        20px;

}


.footer-logo img {

    width:
        auto;

    height:
        48px;

}


.footer-description {

    color:
        #858c95;

    font-size:
        .82rem;

    line-height:
        1.7;

    margin:
        0;

}


.footer-label {

    color:
        #6f7781;

    font-size:
        .68rem;

    font-weight:
        800;

    letter-spacing:
        .13em;

    text-transform:
        uppercase;

    margin-bottom:
        9px;

}


.footer-title {

    color:
        #fff;

    font-size:
        .95rem;

    font-weight:
        750;

    margin-bottom:
        8px;

}


.footer-info p,
.footer-company p {

    color:
        #858c95;

    font-size:
        .8rem;

    line-height:
        1.65;

    margin:
        0;

}


.footer-company-link {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    color:
        #fff;

    font-size:
        1rem;

    font-weight:
        800;

    text-decoration:
        none;

    margin-bottom:
        8px;

    transition:
        color .15s ease;

}


.footer-company-link span {

    color:
        var(--red);

    font-size:
        .9rem;

    transition:
        transform .15s ease;

}


.footer-company-link:hover {

    color:
        #fff;

}


.footer-company-link:hover span {

    transform:
        translate(
            2px,
            -2px
        );

}


.footer-bottom {

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    border-top:
        1px solid
        rgba(255,255,255,.07);

    padding-top:
        20px;

    color:
        #5f6771;

    font-size:
        .7rem;

}


.footer-bottom-right {

    display:
        flex;

    align-items:
        center;

    gap:
        9px;

}


.footer-dot {

    color:
        #3f464e;

}


/* ==========================================================================
   FOOTER — MOBILE
   ========================================================================== */

@media (max-width: 767.98px) {

    .footer {

        padding:
            42px 0 20px;

    }


    .footer-main {

        grid-template-columns:
            1fr;

        gap:
            30px;

        padding-bottom:
            35px;

    }


    .footer-brand {

        max-width:
            none;

    }


    .footer-bottom {

        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            8px;

    }


    .footer-bottom-right {

        flex-wrap:
            wrap;

    }

}
.product-image-box {

    display: flex;

    align-items: center;

    justify-content: center;

    min-height: 260px;

    padding: 25px;

    background: #f8f9fa;

    border: 1px solid var(--border);

    border-radius: 18px;

}


.product-image {

    display: block;

    max-width: 100%;

    width: auto;

    max-height: 320px;

    object-fit: contain;
}
.availability-loading {
    background: #6db2c7;

    display: inline-flex;
    align-items: center;
    gap: 9px;
}


.availability-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    display: inline-block;
    animation: availability-spin 0.7s linear infinite;
}


@keyframes availability-spin {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }

}