/* =========================================================
   SMARTER APPLIANCES
   SERVICES PAGE

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

:root {
    --services-obsidian: #0d1d1f;
    --services-mint: #2dd4a8;
    --services-paper: #f5f3ee;
    --services-warm: #e8e4dd;

    --services-mint-dark: oklch(0.6775 0.1257 170.29);

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

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

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

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


/* =========================================================
   GLOBAL
   ========================================================= */

.services-page {
    width: 100%;

    overflow-x: hidden;

    background: var(--services-paper);

    color: var(--services-obsidian);

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


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


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

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


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

@keyframes servicesReveal {

    from {
        opacity: 0;

        transform: translateY(20px);
    }

    to {
        opacity: 1;

        transform: translateY(0);
    }

}


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


/* =========================================================
   PAGE HEADER

   Vite:
   border-b border-foreground/5 px-6 py-24
   ========================================================= */

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

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


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

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

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

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

    line-height: 16px;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


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

    margin: 0;

    color: var(--services-obsidian);

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

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

    line-height: 0.95;

    letter-spacing: -0.05em;

    text-wrap: balance;
}


/* =========================================================
   FIELD SERVICE

   Vite:
   border-b
   px-6 py-16
   grid gap-12 lg:grid-cols-2
   ========================================================= */

.services-field {
    padding: 64px 24px;

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


.services-field__grid {
    display: grid;

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

    align-items: center;

    gap: 48px;
}


/* Image */

.services-field__image-wrap {
    position: relative;

    aspect-ratio: 3 / 2;

    overflow: hidden;

    border-radius: 2px;

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


.services-field__image {
    position: absolute;

    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* Content */

.services-field__eyebrow {
    margin-bottom: 16px;

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

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

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

    line-height: 16px;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


.services-field__title {
    max-width: 20ch;

    margin: 0 0 24px;

    color: var(--services-obsidian);

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

    line-height: 1.2;

    letter-spacing: -0.025em;

    text-wrap: balance;
}


.services-field__text {
    max-width: 50ch;

    margin: 0;

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

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

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

    line-height: 1.625;
}


/* =========================================================
   SERVICES GRID

   Vite:
   px-6 py-24
   max-w-7xl
   gap-px
   border
   bg-foreground/10
   ========================================================= */

.services-list {
    padding: 96px 24px;

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


.services-grid {
    display: grid;

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

    gap: 1px;

    padding: 1px;

    background: var(--services-border-10);

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


.services-card {
    padding: 40px;

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


.services-card__number {
    margin-bottom: 24px;

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

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

    font-size: 14px;

    line-height: 20px;
}


.services-card__title {
    margin: 0 0 16px;

    color: var(--services-obsidian);

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

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

    line-height: 32px;
}


.services-card__text {
    margin: 0;

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

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

    font-size: 16px;

    line-height: 1.625;
}


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

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

.services-portfolio-cta {
    padding: 96px 24px;

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


.services-portfolio-cta__inner {
    display: flex;

    flex-direction: column;

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

    gap: 32px;
}


.services-portfolio-cta__title {
    max-width: 24ch;

    margin: 0;

    color: var(--services-obsidian);

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

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

    line-height: 1.2;

    letter-spacing: -0.025em;

    text-wrap: balance;
}


/* =========================================================
   SHARED MINT BUTTON
   ========================================================= */

.services-button {
    display: inline-flex;

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

    flex-shrink: 0;

    padding: 16px 32px;

    border-radius: 2px;

    background: var(--services-mint);

    color: var(--services-obsidian);

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

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

    line-height: 20px;

    letter-spacing: 0.1em;

    text-decoration: none;

    white-space: nowrap;

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


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

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


/* =========================================================
   INSTALL READY / PARTNERS

   Vite:
   border-y border-foreground/10
   bg-warm
   px-6 py-16
   ========================================================= */

.services-partners {
    padding: 64px 24px;

    background: var(--services-warm);

    border-top:
        1px
        solid
        var(--services-border-10);

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


/* Top portion */

.services-install-ready {
    display: flex;

    flex-direction: column;

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

    gap: 24px;

    margin-bottom: 64px;
    padding-bottom: 64px;

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


.services-install-ready__eyebrow {
    margin: 0 0 8px;

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

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

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

    line-height: 16px;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


.services-install-ready__title {
    margin: 0 0 12px;

    color: var(--services-obsidian);

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

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

    line-height: 32px;

    letter-spacing: -0.025em;
}


.services-install-ready__text {
    max-width: 60ch;

    margin: 0;

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

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

    font-size: 14px;

    line-height: 1.625;
}


/* Partner logos */

.services-partners__heading {
    margin: 0 0 40px;

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

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

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

    line-height: 20px;

    text-align: center;

    text-transform: uppercase;

    letter-spacing: 0.1em;
}


.services-partners__grid {
    display: grid;

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

    align-items: center;

    gap: 16px;

    width: 100%;
}


.services-partner-logo {
    display: flex;

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

    height: 32px;
}


.services-partner-logo img {
    display: block;

    width: auto;
    max-width: 100%;

    height: 100%;

    object-fit: contain;

    opacity: 0.7;

    transition: opacity 0.2s ease;
}


.services-partner-logo img:hover {
    opacity: 1;
}


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

@media (min-width: 768px) {

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


    .services-portfolio-cta__inner {
        flex-direction: row;

        align-items: center;
    }


    .services-install-ready {
        flex-direction: row;

        align-items: center;
    }


    .services-partners__grid {
        gap: 32px;
    }


    .services-partner-logo {
        height: 40px;
    }

}


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

@media (min-width: 1024px) {

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


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


    .services-field__title {
        font-size: 36px;
    }


    .services-card {
        padding: 48px;
    }

}


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

@media (max-width: 575px) {

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


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


    .services-field,
    .services-list,
    .services-portfolio-cta,
    .services-partners {
        padding-left: 20px;
        padding-right: 20px;
    }


    .services-card {
        padding: 32px;
    }


    .services-partners__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        row-gap: 32px;
    }

}