/* =========================================================
   SMARTER APPLIANCES
   BUILD TO RENT

   Converted directly from:
   src/routes/btr.tsx
   ========================================================= */

:root {
    --btr-obsidian: oklch(0.168 0.020 220);
    --btr-teal-deep: oklch(0.3 0.0401 213.75);
    --btr-mint: oklch(0.778 0.1454 169.75);
    --btr-mint-dark: oklch(0.6775 0.1257 170.29);
    --btr-paper: oklch(0.972 0.006 80);
    --btr-warm: oklch(0.92 0.009 80);

    --btr-border-5:
        color-mix(
            in oklab,
            var(--btr-obsidian) 5%,
            transparent
        );

    --btr-border-10:
        color-mix(
            in oklab,
            var(--btr-obsidian) 10%,
            transparent
        );

    --btr-text-55:
        color-mix(
            in oklab,
            var(--btr-obsidian) 55%,
            transparent
        );

    --btr-text-60:
        color-mix(
            in oklab,
            var(--btr-obsidian) 60%,
            transparent
        );

    --btr-max-width: 1280px;
}


/* =========================================================
   BASE
   ========================================================= */

.btr-page {
    width: 100%;
    overflow-x: hidden;

    background: var(--btr-paper);
    color: var(--btr-obsidian);

    font-family: "DM Sans", sans-serif;
}


.btr-page h1,
.btr-page h2,
.btr-page h3 {
    font-family: "Space Grotesk", sans-serif;
}


.btr-container {
    width: 100%;
    max-width: var(--btr-max-width);

    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   REVEAL
   ========================================================= */

@keyframes btrReveal {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


.btr-reveal {
    animation:
        btrReveal
        0.8s
        cubic-bezier(0.16, 1, 0.3, 1)
        both;
}


/* =========================================================
   HERO

   Vite:
   border-b
   px-6 py-24
   grid max-w-7xl
   gap-12
   lg:grid-cols-2
   ========================================================= */

.btr-hero {
    padding: 96px 24px;

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


.btr-hero__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr);

    align-items: center;

    gap: 48px;
}


.btr-hero__eyebrow {
    margin-bottom: 24px;

    color: var(--btr-mint-dark);

    font-family: "Space Grotesk", sans-serif;

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

    line-height: 16px;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


.btr-hero__title {
    max-width: 20ch;

    margin: 0;

    color: var(--btr-obsidian);

    font-family: "Space Grotesk", sans-serif;

    font-size: 48px;
    font-weight: 700;

    line-height: 0.95;

    letter-spacing: -0.05em;

    text-wrap: balance;
}


.btr-hero__description {
    max-width: 60ch;

    margin: 32px 0 0;

    color: var(--btr-text-60);

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

    line-height: 1.625;
}


.btr-hero__actions {
    display: flex;

    flex-wrap: wrap;

    gap: 16px;

    margin-top: 40px;
}


/* =========================================================
   HERO IMAGE

   Vite:
   aspect-[16/10]
   overflow-hidden
   rounded-sm
   border
   ========================================================= */

.btr-hero__image-wrap {
    position: relative;

    aspect-ratio: 16 / 10;

    overflow: hidden;

    border:
        1px solid
        var(--btr-border-10);

    border-radius: 2px;
}


.btr-hero__image {
    position: absolute;

    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* =========================================================
   BUTTON
   ========================================================= */

.btr-button {
    display: inline-flex;

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

    padding: 16px 32px;

    border-radius: 2px;

    font-family: "DM Sans", sans-serif;

    font-size: 14px;
    font-weight: 700;

    line-height: 20px;

    letter-spacing: 0.1em;

    text-align: center;

    text-decoration: none;

    white-space: nowrap;

    transition:
        box-shadow 0.2s ease,
        opacity 0.2s ease;
}


.btr-button--mint {
    background: var(--btr-mint);

    color: var(--btr-obsidian);
}


.btr-button--mint:hover {
    color: var(--btr-obsidian);

    box-shadow:
        0 0 30px
        color-mix(
            in oklab,
            var(--btr-mint) 45%,
            transparent
        );
}


/* =========================================================
   STATS

   Vite:
   bg-warm
   px-6 py-16
   sm:grid-cols-3
   gap-10
   ========================================================= */

.btr-stats {
    padding: 64px 24px;

    background: var(--btr-warm);
}


.btr-stats__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr);

    gap: 40px;
}


.btr-stat__value {
    color: var(--btr-obsidian);

    font-family: "Space Grotesk", sans-serif;

    font-size: 36px;
    font-weight: 700;

    line-height: 1;

    letter-spacing: -0.05em;
}


.btr-stat__label {
    margin-top: 8px;

    color: var(--btr-text-55);

    font-size: 14px;

    line-height: 20px;
}


/* =========================================================
   WARRANTY GAP

   Vite:
   px-6 py-24
   max-w-4xl = 896px
   text-center
   ========================================================= */

.btr-warranty {
    padding: 96px 24px;
}


.btr-warranty__inner {
    width: 100%;
    max-width: 896px;

    margin-left: auto;
    margin-right: auto;

    text-align: center;
}


.btr-warranty__title {
    margin: 0 0 24px;

    color: var(--btr-obsidian);

    font-size: 30px;
    font-weight: 700;

    line-height: 36px;

    letter-spacing: -0.025em;
}


.btr-warranty__text {
    max-width: 70ch;

    margin: 0 auto;

    color: var(--btr-text-60);

    font-size: 18px;

    line-height: 1.625;
}


/* =========================================================
   COMMON SECTION TITLE
   ========================================================= */

.btr-section-title {
    max-width: 24ch;

    margin: 0 0 48px;

    color: var(--btr-obsidian);

    font-family: "Space Grotesk", sans-serif;

    font-size: 30px;
    font-weight: 700;

    line-height: 36px;

    letter-spacing: -0.025em;

    text-wrap: balance;
}


/* =========================================================
   PROGRAMME
   ========================================================= */

.btr-programme {
    padding: 96px 24px;
}


.btr-programme__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr);

    gap: 1px;

    padding: 1px;

    border:
        1px solid
        var(--btr-border-10);

    background:
        var(--btr-border-10);
}


.btr-programme-card {
    padding: 40px;

    background: var(--btr-paper);
}


.btr-programme-card__number {
    margin-bottom: 24px;

    color: var(--btr-mint-dark);

    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        "Liberation Mono",
        monospace;

    font-size: 14px;

    line-height: 20px;
}


.btr-programme-card__title {
    margin: 0 0 16px;

    color: var(--btr-obsidian);

    font-size: 24px;
    font-weight: 700;

    line-height: 32px;
}


.btr-programme-card__text {
    margin: 0;

    color: var(--btr-text-60);

    font-size: 16px;

    line-height: 1.625;
}


/* =========================================================
   MOBILISATION

   Vite:
   bg-warm
   px-6 py-24
   ========================================================= */

.btr-mobilisation {
    padding: 96px 24px;

    background: var(--btr-warm);
}


.btr-mobilisation__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr);

    gap: 1px;

    background:
        var(--btr-border-10);
}


.btr-mobilisation-card {
    padding: 32px;

    background: var(--btr-warm);
}


.btr-mobilisation-card__step {
    margin-bottom: 16px;

    color: var(--btr-mint-dark);

    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Monaco,
        Consolas,
        "Liberation Mono",
        monospace;

    font-size: 12px;

    line-height: 16px;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


.btr-mobilisation-card__title {
    margin: 0 0 12px;

    color: var(--btr-obsidian);

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

    line-height: 28px;
}


.btr-mobilisation-card__text {
    margin: 0;

    color: var(--btr-text-60);

    font-size: 14px;

    line-height: 1.625;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.btr-final-cta {
    padding: 96px 24px;
}


.btr-final-cta__inner {
    display: flex;

    flex-direction: column;

    align-items: flex-start;
    justify-content: space-between;

    gap: 32px;
}


.btr-final-cta__title {
    max-width: 26ch;

    margin: 0;

    color: var(--btr-obsidian);

    font-family: "Space Grotesk", sans-serif;

    font-size: 30px;
    font-weight: 700;

    line-height: 36px;

    letter-spacing: -0.025em;

    text-wrap: balance;
}


/* =========================================================
   SM = 640px
   ========================================================= */

@media (min-width: 640px) {

    .btr-stats__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* =========================================================
   MD = 768px
   ========================================================= */

@media (min-width: 768px) {

    .btr-programme__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .btr-mobilisation__grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }


    .btr-final-cta__inner {
        flex-direction: row;

        align-items: center;
    }

}


/* =========================================================
   LG = 1024px
   ========================================================= */

@media (min-width: 1024px) {

    .btr-hero__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .btr-hero__title {
        font-size: 60px;
    }


    .btr-stat__value {
        font-size: 48px;
    }


    .btr-programme-card {
        padding: 48px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 575px) {

    .btr-hero {
        padding:
            72px
            20px;
    }


    .btr-hero__title {
        font-size: 42px;
    }


    .btr-hero__description {
        font-size: 17px;
    }


    .btr-stats,
    .btr-warranty,
    .btr-programme,
    .btr-mobilisation,
    .btr-final-cta {
        padding-left: 20px;
        padding-right: 20px;
    }


    .btr-programme-card {
        padding: 32px;
    }


    .btr-final-cta .btr-button {
        width: 100%;
    }

}