frontend/src/pages/index.module.scss (265 lines of code) (raw):

@use "~@mozilla-protocol/core/protocol/css/includes/lib" as *; @use "../styles/color"; @use "../styles/text"; .hero { display: flex; flex-direction: column; gap: $spacing-2xl; width: $content-max; max-width: 100%; margin: 0 auto; padding: $spacing-2xl $spacing-lg; @media screen and #{$mq-md} { flex-direction: row; align-items: center; } .lead, .demo-phone { flex: 1 0 0; } .lead { display: flex; flex-direction: column; align-items: flex-start; gap: $spacing-lg; } h2 { @include text.title-md { font-family: $font-stack-firefox; } } p { max-width: calc($content-sm + $layout-xl); } .cta { margin: $spacing-xl 0; min-width: $content-xs; } .social-proof { padding: $spacing-lg 0; width: 100%; max-width: 55%; @media screen and #{$mq-md} { width: auto; } } .end-of-intro-pricing-hero { display: flex; gap: $spacing-lg; flex-wrap: wrap; & > div { flex: 1 1 $content-xs; } } } .how-it-works-wrapper { background-color: $color-white; // Magic number: 64px allows us to have an even spacing between sections on pages padding: calc($spacing-xl * 2) $spacing-md; } .how-it-works { width: $content-max; max-width: 100%; margin: 0 auto; padding: $spacing-lg; h2 { @include text.title-sm { font-family: $font-stack-firefox; text-align: center; margin-bottom: $layout-sm; } } h2, .lead { padding: $spacing-sm 0; } a { color: $color-blue-50; text-decoration: underline; font-weight: 700; &:hover { color: $color-blue-60; text-decoration: none; } } .steps { display: flex; flex-direction: column; gap: $layout-lg; list-style-type: none; padding: $spacing-2xl 0; text-align: start; margin: 0; @media screen and #{$mq-md} { gap: $layout-xl; margin: $spacing-2xl $layout-2xl 0 $layout-2xl; } @media screen and #{$mq-lg} { flex-direction: row; margin: 0; } h3 { @include text-title-3xs; font-family: $font-stack-base; font-weight: 600; padding-top: $spacing-md; line-height: 1.5; } p { padding: $spacing-md 0; } .step { flex: 1; } img { width: 100%; display: inline-block; } } } .use-cases-wrapper { background-color: $color-white; } .use-cases { width: $content-max; max-width: 100%; margin: 0 auto; padding: $spacing-lg; } // Creates a page break effect .page-break { background: linear-gradient( 180deg, $color-light-gray-20 0%, $color-light-gray-10 45% ); height: $layout-md; } .features { padding: $layout-xs; width: $content-xl; max-width: 100%; margin: 0 auto; @media screen and #{$mq-md} { padding: $layout-sm $layout-xs; } } .plans { width: $content-max; max-width: 100%; margin: 0 auto; display: flex; gap: $spacing-2xl; flex-direction: column-reverse; align-items: center; padding: 0 $spacing-md $spacing-md $spacing-md; margin-top: $layout-xl; &.non-premium-country { display: flex; align-items: center; justify-content: center; } .callout { display: flex; flex-direction: column; align-items: flex-start; text-align: center; max-width: $content-md; gap: $spacing-lg; margin-top: $layout-xl; h2 { @include text.title-sm { font-family: $font-stack-firefox; font-weight: 500; } } .end-of-intro-pricing-countdown-and-warning { display: flex; flex-direction: column; gap: $spacing-sm; } } @media screen and #{$mq-xl} { flex-direction: row; padding: 0 $spacing-2xl $spacing-2xl $spacing-2xl; .plan-comparison { padding: $spacing-2xl; } .callout { padding: $spacing-2xl; text-align: start; } } } .faq-wrapper { background-color: $color-white; // Magic number: 64px allows us to have an even spacing between sections on pages padding: calc($spacing-xl * 2) $spacing-md; } .faq { width: $content-max; max-width: 100%; margin: 0 auto; padding: $spacing-lg; display: flex; flex-direction: column; .lead { flex: 1 0 0; @media screen and #{$mq-md} { padding: 0 $spacing-2xl; } .headline { @include text.title-sm { font-family: $font-stack-firefox; font-weight: 500; padding: $spacing-md 0; } } .read-more { color: $color-blue-50; font-weight: 700; text-decoration: underline; &:hover { text-decoration: none; } } } .entries { flex: 1 0 0; padding-top: $spacing-lg; @media screen and #{$mq-md} { padding: 0 $spacing-2xl; } } @media screen and #{$mq-md} { flex-direction: row; gap: $spacing-md; } } .bundle-banner-section { width: 100%; margin: 0 auto; // Magic number: 64px allows us to have an even spacing between sections on pages padding: calc($spacing-xl * 2) $spacing-md; @media screen and #{$mq-md} { width: $content-max; margin-top: 0; max-width: 100%; } } .gray-bg { background-color: $color-light-gray-10; } .reviews-container { // Magic number: 64px allows us to have an even spacing between sections on pages padding: calc($spacing-xl * 2) $spacing-md; } .testimonials-wrapper { display: flex; align-items: center; justify-content: center; flex-direction: row; gap: $spacing-md; border: 0 solid $color-light-gray-20; border-top-width: 1px; border-bottom-width: 1px; p { @include text-body-lg; font-family: $font-stack-base; } }