/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

@import url("@vector-im/compound-design-tokens/assets/web/css/compound-design-tokens.css");

html {
    min-height: 100%;
    position: relative;
}

body {
    background: var(--cpd-color-bg-canvas-default);
    max-width: 680px;
    margin: var(--cpd-space-0x) auto;
    padding-bottom: 178px; /* Match the height of mx_BottomGradient */
    font-family: var(--cpd-font-family-sans);
    font-size: var(--cpd-font-size-body-lg); /* Design says 16px, this is 17px */
    color: var(--cpd-color-text-primary);
}

hr {
    border: none;
    height: var(--cpd-border-width-1);
    background-color: var(
        --cpd-color-bg-subtle-primary /* Design uses Border token from "Compound Marketing" set, but this matches. */
    );
    color: var(
        --cpd-color-bg-subtle-primary /* Design uses Border token from "Compound Marketing" set, but this matches. */
    );
    margin: 0;
}

p {
    margin: var(--cpd-space-1x) var(--cpd-space-0x);
    padding: var(--cpd-space-0x);
}

.mx_Button {
    border: 0;
    border-radius: 100px;
    min-width: 80px;
    background-color: var(--cpd-color-bg-action-primary-rest);
    color: var(--cpd-color-text-on-solid-primary);
    cursor: pointer;
    padding: 12px 22px;
    word-break: break-word;
    text-decoration: none;
}

#deep_link_button {
    margin-top: 12px;
    display: inline-block;
    width: auto;
    box-sizing: border-box;
}

.mx_StoreLinks {
    margin: 15px 0 12px 0;
}

.mx_StoreBadge {
    text-decoration: none !important;
    margin: 16px 16px 16px 0px;
}

#f_droid_link {
    color: var(--cpd-color-text-action-accent);
    font-weight: bold;
    text-decoration: none;
}

#f_droid_link:visited {
    color: var(--cpd-color-text-action-accent);
}

.mx_HomePage_header {
    color: var(--cpd-color-text-secondary);
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 48px;
    padding-bottom: 48px;
}

.mx_HomePage_header #header_title {
    margin-top: 8px;
    margin-bottom: 0px;
}

.mx_HomePage h3 {
    margin-top: 30px;
}

.mx_HomePage_col {
    display: flex;
    flex-direction: row;
}

.mx_HomePage_row {
    flex: 1 1 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
}

.mx_HomePage_container {
    margin: 10px 20px;
}

.mx_HomePage_errorContainer {
    display: none; /* shown in JS if needed */
    margin: 20px;
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-critical-primary);
    background-color: var(--cpd-color-bg-critical-subtle);
    padding: 5px;
}

.mx_HomePage_container h1,
.mx_HomePage_container h2,
.mx_HomePage_container h3,
.mx_HomePage_container h4 {
    font-weight: var(--cpd-font-weight-semibold);
    font-size: var(--cpd-font-size-body-lg); /* Design says 16px, this is 17px */
    margin-bottom: 8px;
    margin-top: 4px;
}

.mx_Spacer {
    margin-top: 48px;
}

.mx_DesktopLink {
    color: var(--cpd-color-text-action-accent);
    font-weight: var(--cpd-font-weight-semibold);
    text-decoration: none;
}

/*
 * The bottom gradient is a full-width background image that stretches horizontally across the page.
 * It is positioned pinned to the bottom of the viewport unless the content is taller than the viewport,
 * in which case it will be pinned to the bottom of the content.
 */
.mx_BottomGradient {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100vw;
    height: 178px; /* Match the height of assets/bottom-gradient.svg so the gradient only stretches horizontally */
    background-image: url("./assets/bottom-gradient.svg");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    z-index: -1;
    margin-left: calc(50% - 50vw); /* Center the gradient regardless of body width */
}

.mx_HomePage_step_number {
    display: flex;
    align-items: flex-start;
    margin-right: 8px;
}

.mx_HomePage_step_number span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--cpd-space-6x);
    height: var(--cpd-space-6x);
    border-radius: 50%;
    border: var(--cpd-border-width-1) solid var(--cpd-color-bg-subtle-primary); /* Not a border token, but matches the Design (Border token from the "Compound Marketing" set). */
    background-color: transparent;
    color: var(--cpd-color-text-secondary);
    font-size: var(--cpd-font-size-body-md); /* Design says 14px, this is 15px */
}

#step2_description {
    color: var(--cpd-color-text-secondary);
}
