/* =========================================================
   SMARTER APPLIANCES
   HOW IT WORKS

   Converted directly from:
   src/routes/how-it-works.tsx
   ========================================================= */

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

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

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

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

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


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

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

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

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


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


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

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


/* =========================================================
   REVEAL ANIMATION
   Same as Vite animate-reveal
   ========================================================= */

@keyframes hiwReveal {

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

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

}


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


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

   Vite:
   border-b border-foreground/5
   px-6
   py-24
   max-w-7xl
   ========================================================= */

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

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


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

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

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

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

    line-height: 16px;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


.hiw-hero__title {
    max-width: 18ch;

    margin: 0;

    color: var(--hiw-obsidian);

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

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

    line-height: 0.95;

    letter-spacing: -0.05em;

    text-wrap: balance;
}


/* =========================================================
   PROCESS

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

.hiw-process {
    padding: 96px 24px;
}


.hiw-process__inner {
    width: 100%;
    max-width: 896px;

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


/* =========================================================
   PROCESS STEP

   Vite:
   grid-cols-[3rem_1fr]
   gap-6
   py-10
   border-b
   ========================================================= */

.hiw-step {
    display: grid;

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

    gap: 24px;

    padding-top: 40px;
    padding-bottom: 40px;

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


.hiw-step:first-child {
    padding-top: 40px;
}


.hiw-step--last {
    border-bottom: 0;
}


/* Number */

.hiw-step__number {
    color: var(--hiw-mint-dark);

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

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

    line-height: 20px;
}


/* Content */

.hiw-step__title {
    margin: 0 0 12px;

    color: var(--hiw-obsidian);

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

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

    line-height: 32px;
}


.hiw-step__text {
    max-width: 60ch;

    margin: 0;

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

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

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

    line-height: 1.625;
}


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

   Note:
   The original Vite page has another px-6 py-24
   section directly after the process section.
   No different background is applied.
   ========================================================= */

.hiw-cta {
    padding: 96px 24px;
}


.hiw-cta__inner {
    display: flex;

    flex-direction: column;

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

    gap: 32px;
}


.hiw-cta__title {
    max-width: 24ch;

    margin: 0;

    color: var(--hiw-obsidian);

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

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

    line-height: 1.2;

    letter-spacing: -0.025em;

    text-wrap: balance;
}


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

   Vite:
   bg-obsidian
   px-8 py-4
   text-sm
   font-bold
   tracking-widest
   ========================================================= */

.hiw-cta__button {
    display: inline-flex;

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

    flex-shrink: 0;

    padding: 16px 32px;

    border-radius: 2px;

    background: var(--hiw-obsidian);

    color: var(--hiw-paper);

    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:
        background-color 0.2s ease,
        color 0.2s ease;
}


.hiw-cta__button:hover {
    background: var(--hiw-teal-deep);
    color: var(--hiw-paper);
}


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

@media (min-width: 768px) {

    .hiw-cta__inner {
        flex-direction: row;

        align-items: center;
    }

}


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

@media (min-width: 1024px) {

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

}


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

@media (max-width: 575px) {

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


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


    .hiw-process,
    .hiw-cta {
        padding-left: 20px;
        padding-right: 20px;
    }


    .hiw-process {
        padding-top: 72px;
        padding-bottom: 72px;
    }


    .hiw-cta {
        padding-top: 72px;
        padding-bottom: 72px;
    }


    .hiw-step {
        grid-template-columns: 36px minmax(0, 1fr);

        gap: 16px;

        padding-top: 32px;
        padding-bottom: 32px;
    }


    .hiw-step__title {
        font-size: 22px;
    }


    .hiw-cta__button {
        width: 100%;
    }

}