.home-page {
    overflow: hidden;
}

.home-page,
.home-page * {
    min-width: 0;
}

.home-hero {
    position: relative;

    color: #ffffff;
    background:
        radial-gradient(
            circle at 86% 20%,
            rgba(24, 95, 209, 0.28),
            transparent 28rem
        ),
        linear-gradient(
            135deg,
            var(--petrol-950),
            var(--petrol-900)
        );
}

.home-hero::before {
    position: absolute;
    inset: 0;

    content: "";

    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px
        );

    background-size: 48px 48px;

    pointer-events: none;
}

.home-hero__grid {
    position: relative;
    z-index: 1;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(320px, 0.95fr);

    align-items: center;
    gap: clamp(3rem, 7vw, 7rem);

    min-height: min(780px, calc(100vh - var(--header-height)));
    padding-block: clamp(5rem, 10vw, 8.5rem);
}

.home-hero__content {
    max-width: 760px;
}

.home-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;

    margin-bottom: 1.25rem;

    color: var(--blue-600);

    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.home-eyebrow::before {
    width: 2rem;
    height: 0.2rem;

    content: "";

    background: var(--orange-500);
    border-radius: 999px;
}

.home-eyebrow--light {
    color: #b8d1ff;
}

.home-hero .home-eyebrow {
    color: #b8d1ff;
}

.home-hero h1 {
    max-width: 790px;
    margin-bottom: 1.5rem;

    color: #ffffff;

    font-size: clamp(2.8rem, 6vw, 5.7rem);
    line-height: 1.03;
}

.home-hero__lead {
    max-width: 680px;
    margin-bottom: 2rem;

    color: rgba(255, 255, 255, 0.78);

    font-size: clamp(1.1rem, 2vw, 1.3rem);
    line-height: 1.7;
}

.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;

    margin-bottom: 2.4rem;
}

.home-hero .button--secondary {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.58);
}

.home-hero .button--secondary:hover,
.home-hero .button--secondary:focus-visible {
    color: var(--petrol-950);
    background: #ffffff;
}

.home-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;

    margin: 0;
    padding: 0;

    color: rgba(255, 255, 255, 0.68);

    font-size: 0.88rem;
    list-style: none;
}

.home-hero__facts li {
    position: relative;

    padding-left: 1rem;
}

.home-hero__facts li::before {
    position: absolute;
    top: 0.58em;
    left: 0;

    width: 0.4rem;
    height: 0.4rem;

    content: "";

    background: var(--orange-500);
    border-radius: 50%;
}

.home-hero__visual {
    position: relative;

    width: 100%;
    max-width: 650px;
    margin-left: auto;
}

.home-hero__visual::before {
    position: absolute;
    z-index: -1;
    top: 10%;
    right: 7%;

    width: 75%;
    aspect-ratio: 1;

    content: "";

    background: rgba(24, 95, 209, 0.25);
    border-radius: 50%;

    filter: blur(50px);
}

.home-hero__diagram {
    width: 100%;
    height: auto;

    filter: drop-shadow(0 2rem 4rem rgba(0, 0, 0, 0.22));
}

.home-expertise {
    position: relative;
    z-index: 2;

    margin-top: -4rem;
}

.home-expertise__grid {
    display: grid;

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

    overflow: hidden;

    background: #ffffff;
    border: 1px solid rgba(16, 59, 61, 0.1);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
}

.home-expertise__item {
    min-height: 10rem;
    padding: 1.8rem;

    border-right: 1px solid var(--gray-200);
}

.home-expertise__item:last-child {
    border-right: 0;
}

.home-expertise__item > span {
    display: block;

    margin-bottom: 0.8rem;

    color: var(--orange-500);

    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.home-expertise__item strong {
    display: block;

    margin-bottom: 0.45rem;

    color: var(--petrol-950);

    font-size: 1.03rem;
}

.home-expertise__item p {
    margin: 0;

    color: var(--gray-500);

    font-size: 0.9rem;
    line-height: 1.55;
}

.home-section {
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
}

.home-section--soft {
    background: var(--gray-50);
}

.home-section--petrol {
    color: rgba(255, 255, 255, 0.78);
    background:
        radial-gradient(
            circle at 90% 15%,
            rgba(24, 95, 209, 0.2),
            transparent 25rem
        ),
        linear-gradient(
            145deg,
            var(--petrol-900),
            var(--petrol-950)
        );
}

.home-section--petrol h2,
.home-section--petrol h3 {
    color: #ffffff;
}

.home-intro {
    display: grid;

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

    align-items: start;
    gap: clamp(2.5rem, 8vw, 8rem);
}

.home-intro h2,
.home-section-heading h2,
.home-benefits h2,
.home-faq-layout h2 {
    max-width: 820px;

    font-size: clamp(2.15rem, 4.5vw, 4rem);
}

.home-intro__content {
    max-width: 680px;
}

.home-intro__lead {
    color: var(--petrol-800);

    font-size: clamp(1.1rem, 2vw, 1.3rem);
    line-height: 1.72;
}

.home-intro__content p:not(.home-intro__lead) {
    color: var(--gray-500);
}

.home-section-heading {
    display: grid;

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

    align-items: end;
    gap: clamp(2rem, 6vw, 5rem);

    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.home-section-heading > p {
    max-width: 520px;
    margin: 0;

    color: var(--gray-500);

    font-size: 1.03rem;
    line-height: 1.7;
}

.home-section-heading--light > p {
    color: rgba(255, 255, 255, 0.7);
}

.home-service-grid {
    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem;
}

.home-service-card {
    display: flex;
    flex-direction: column;

    min-height: 18rem;
    padding: clamp(1.45rem, 3vw, 2.1rem);

    background: #ffffff;
    border: 1px solid rgba(16, 59, 61, 0.11);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);

    transition:
        border-color var(--transition),
        box-shadow var(--transition),
        transform var(--transition);
}

.home-service-card:hover {
    border-color: rgba(24, 95, 209, 0.36);
    box-shadow: var(--shadow-md);

    transform: translateY(-0.25rem);
}

.home-service-card__number {
    display: grid;
    place-items: center;

    width: 3rem;
    height: 3rem;
    margin-bottom: 1.7rem;

    color: var(--blue-600);
    background: var(--blue-100);
    border-radius: 0.8rem;

    font-size: 0.8rem;
    font-weight: 850;
}

.home-service-card:nth-child(even) .home-service-card__number {
    color: var(--orange-600);
    background: var(--orange-100);
}

.home-service-card h3 {
    color: var(--petrol-950);

    font-size: 1.25rem;
}

.home-service-card p {
    margin-bottom: 1.5rem;

    color: var(--gray-500);

    line-height: 1.67;
}

.home-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;

    margin-top: auto;

    color: var(--blue-600);

    font-weight: 800;
    text-decoration: none;
}

.home-text-link:hover,
.home-text-link:focus-visible {
    color: var(--orange-600);
}

.home-system-grid {
    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.1rem;
}

.home-system-card {
    display: flex;
    flex-direction: column;

    min-height: 20rem;
    padding: 1.6rem;

    color: #ffffff;
    text-decoration: none;

    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--radius-md);

    transition:
        background var(--transition),
        border-color var(--transition),
        transform var(--transition);
}

.home-system-card:hover,
.home-system-card:focus-visible {
    color: #ffffff;

    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(114, 168, 255, 0.75);

    transform: translateY(-0.25rem);
}

.home-system-card__top {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.home-system-card__icon {
    display: grid;
    place-items: center;

    width: 3rem;
    height: 3rem;

    color: var(--petrol-950);
    background: #ffffff;
    border-radius: 0.85rem;

    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.06em;
}

.home-system-card__category {
    color: #b8d1ff;

    font-size: 0.77rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-system-card__content {
    display: grid;
    gap: 0.8rem;

    margin-top: 2rem;
}

.home-system-card__content strong {
    color: #ffffff;

    font-size: 1.2rem;
}

.home-system-card__content span {
    color: rgba(255, 255, 255, 0.72);

    font-size: 0.95rem;
    line-height: 1.65;
}

.home-system-card__link {
    display: inline-flex;
    gap: 0.5rem;

    margin-top: auto;
    padding-top: 1.5rem;

    color: #ffffff;

    font-size: 0.93rem;
    font-weight: 800;
}

.home-process {
    display: grid;

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

    margin: 0;
    padding: 0;

    list-style: none;
}

.home-process__step {
    position: relative;

    padding: 1.75rem;

    background: #ffffff;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.home-process__step:not(:last-child)::after {
    position: absolute;
    z-index: 2;
    top: 3.2rem;
    right: -1.45rem;

    width: 1.7rem;
    height: 0.15rem;

    content: "";

    background: var(--orange-500);
    border-radius: 999px;
}

.home-process__number {
    display: inline-flex;

    margin-bottom: 1.4rem;

    color: var(--orange-600);

    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.home-process__step h3 {
    font-size: 1.22rem;
}

.home-process__step p {
    margin: 0;

    color: var(--gray-500);

    line-height: 1.65;
}

.home-industry-grid {
    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem;
}

.home-industry-card {
    min-height: 16rem;
    padding: 2rem;

    background: #ffffff;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
}

.home-industry-card > span {
    display: block;

    margin-bottom: 2rem;

    color: var(--blue-600);

    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.home-industry-card h3 {
    font-size: 1.3rem;
}

.home-industry-card p {
    margin: 0;

    color: var(--gray-500);

    line-height: 1.7;
}

.home-benefits {
    display: grid;

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

    align-items: start;
    gap: clamp(2.5rem, 8vw, 8rem);
}

.home-benefits__lead {
    max-width: 600px;

    color: var(--gray-500);

    font-size: 1.1rem;
    line-height: 1.72;
}

.home-benefits__list {
    display: grid;
    gap: 1rem;
}

.home-benefit {
    display: grid;

    grid-template-columns: 3rem minmax(0, 1fr);
    gap: 1.3rem;

    padding: 1.5rem;

    border-bottom: 1px solid var(--gray-200);
}

.home-benefit > span {
    display: grid;
    place-items: center;

    width: 3rem;
    height: 3rem;

    color: var(--orange-600);
    background: var(--orange-100);
    border-radius: 50%;

    font-size: 0.75rem;
    font-weight: 850;
}

.home-benefit h3 {
    margin-bottom: 0.5rem;

    font-size: 1.15rem;
}

.home-benefit p {
    margin: 0;

    color: var(--gray-500);

    line-height: 1.65;
}

.home-section--faq {
    background: var(--gray-50);
}

.home-faq-layout {
    display: grid;

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

    align-items: start;
    gap: clamp(2.5rem, 8vw, 8rem);
}

.home-faq-layout > div > p {
    max-width: 540px;

    color: var(--gray-500);

    line-height: 1.7;
}

.home-faq-list {
    display: grid;
    gap: 0.8rem;
}

.home-faq {
    overflow: hidden;

    background: #ffffff;
    border: 1px solid var(--gray-200);
    border-radius: 1rem;
}

.home-faq summary {
    position: relative;

    display: block;

    padding: 1.25rem 3.6rem 1.25rem 1.35rem;

    color: var(--petrol-950);

    font-weight: 800;
    line-height: 1.45;

    cursor: pointer;
}

.home-faq summary::-webkit-details-marker {
    display: none;
}

.home-faq summary::after {
    position: absolute;
    top: 50%;
    right: 1.35rem;

    content: "+";

    color: var(--orange-600);

    font-size: 1.45rem;
    font-weight: 500;

    transform: translateY(-50%);
}

.home-faq[open] summary::after {
    content: "–";
}

.home-faq__answer {
    padding: 0 1.35rem 1.35rem;
}

.home-faq__answer p {
    margin: 0;

    color: var(--gray-500);

    line-height: 1.72;
}

.home-contact {
    position: relative;

    overflow: hidden;

    padding-block: clamp(4.5rem, 9vw, 7rem);

    color: #ffffff;
    background:
        radial-gradient(
            circle at 88% 15%,
            rgba(24, 95, 209, 0.28),
            transparent 24rem
        ),
        linear-gradient(
            135deg,
            var(--petrol-950),
            var(--petrol-900)
        );
}

.home-contact__panel {
    display: grid;

    grid-template-columns:
        minmax(0, 1.3fr)
        minmax(250px, 0.7fr);

    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.home-contact__eyebrow {
    display: inline-block;

    margin-bottom: 1rem;

    color: #b8d1ff;

    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.home-contact h2 {
    max-width: 780px;

    color: #ffffff;

    font-size: clamp(2.2rem, 4.5vw, 4rem);
}

.home-contact p {
    max-width: 760px;
    margin: 0;

    color: rgba(255, 255, 255, 0.76);

    font-size: 1.08rem;
    line-height: 1.72;
}

.home-contact__actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
}

.home-contact .button {
    justify-content: center;
}

.home-contact .button--secondary {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.55);
}

.home-contact .button--secondary:hover,
.home-contact .button--secondary:focus-visible {
    color: var(--petrol-950);
    background: #ffffff;
}

@media (max-width: 1024px) {
    .home-hero__grid,
    .home-intro,
    .home-benefits,
    .home-faq-layout,
    .home-contact__panel {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-hero__grid {
        gap: 3rem;
    }

    .home-hero__visual {
        max-width: 560px;
        margin-inline: auto;
    }

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

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

    .home-process__step:nth-child(2)::after {
        display: none;
    }
}

@media (max-width: 768px) {
    .home-expertise {
        margin-top: -2rem;
    }

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

    .home-expertise__item:nth-child(2) {
        border-right: 0;
    }

    .home-expertise__item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--gray-200);
    }

    .home-section-heading {
        grid-template-columns: minmax(0, 1fr);
        gap: 1rem;
    }

    .home-section-heading > p {
        max-width: 680px;
    }

    .home-industry-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-process__step:not(:last-child)::after {
        display: none;
    }
}

@media (max-width: 560px) {
    .home-hero__grid {
        min-height: auto;
        padding-block: 4.5rem;
    }

    .home-hero h1 {
        font-size: clamp(2.45rem, 12vw, 3.8rem);
    }

    .home-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .home-hero__actions .button {
        width: 100%;
    }

    .home-hero__facts {
        display: grid;
        gap: 0.6rem;
    }

    .home-expertise__grid,
    .home-service-grid,
    .home-system-grid,
    .home-process {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-expertise__item {
        border-right: 0;
        border-bottom: 1px solid var(--gray-200);
    }

    .home-expertise__item:last-child {
        border-bottom: 0;
    }

    .home-expertise__item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--gray-200);
    }

    .home-service-card,
    .home-system-card {
        min-height: 0;
    }

    .home-benefit {
        grid-template-columns: 2.7rem minmax(0, 1fr);
        gap: 1rem;
    }

    .home-benefit > span {
        width: 2.7rem;
        height: 2.7rem;
    }

    .home-contact__actions .button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-service-card,
    .home-system-card {
        transition: none;
    }

    .home-service-card:hover,
    .home-system-card:hover,
    .home-system-card:focus-visible {
        transform: none;
    }
}
