1+ import styled from 'styled-components' ;
2+ import InputField from '../components/InputField' ;
3+ import theme from '../experimental/styles/theme' ;
4+ import { Container , Col } from '../lib/Grid' ;
5+
6+ const meeting = require ( '../images/img/startups/meeting.jpeg' ) ;
7+ const team = require ( '../images/img/startups/bytecode-team.jpeg' ) ;
8+ const group = require ( '../images/img/startups/group.jpg' ) ;
9+
10+ const { size, height, spacing, font, weight, color, border } =
11+ theme . typography . button ;
12+ const { mediaQueryMin, colors } = theme ;
13+
14+ export const Header = styled . header `
15+ height: 100vh;
16+ min-height: 600px;
17+ display: flex;
18+ flex-direction: row;
19+ @media (max-width: ${ theme . breakpoint . xs } ) {
20+ flex-direction: column;
21+ justify-content: flex-end;
22+ }
23+ align-items: center;
24+ ` ;
25+
26+ export const HeaderContainer = styled ( Container ) `
27+ flex: 1;
28+ /* !important used to overwrite standard behaviour react-grid-system, may the code gods forgive me*/
29+ margin-top: 0 !important;
30+ margin-bottom: 0 !important;
31+ ` ;
32+
33+ export const HeaderContent = styled . div `
34+ grid-column: 1;
35+ flex-basis: 30%;
36+ @media (max-width: ${ theme . breakpoint . sm } ) {
37+ padding-bottom: 5vh;
38+ }
39+ @media (max-width: ${ theme . breakpoint . lg } ) {
40+ flex-basis: 60%;
41+ }
42+ ` ;
43+
44+ export const GridFig = styled . img `
45+ width: 7rem;
46+ position: absolute;
47+ transform: translate(-3rem, -3rem);
48+ ` ;
49+
50+ export const HeaderFigure = styled . figure `
51+ display: none;
52+ grid-column: 2;
53+ height: 80vh;
54+ width: 60vw;
55+ transform: translateX(5vw);
56+ @media (${ mediaQueryMin . sm } ) {
57+ display: block;
58+ }
59+ @media (max-width: ${ theme . breakpoint . md } ) {
60+ height: 75vh;
61+ width: 50vw;
62+ transform: translateX(10vw);
63+ }
64+ img {
65+ height: 100%;
66+ width: 100%;
67+ object-fit: cover;
68+ }
69+ ` ;
70+
71+ export const SlantedBackground = styled . div `
72+ width: 100%;
73+ height: 40vh;
74+ background-image: url(${ group } );
75+ opacity: 0.58;
76+ position: absolute;
77+ top: 0;
78+ left: 0;
79+ z-index: -1;
80+ clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
81+ background-size: 150%;
82+ background-position: 29% 61%;
83+ @media (${ mediaQueryMin . sm } ) {
84+ background: #271c25;
85+ opacity: 1;
86+ clip-path: polygon(0 0, 100% 0, 100% 66%, 0 100%);
87+ /* 35rem */
88+ }
89+ ` ;
90+
91+ export const Process = styled . ol `
92+ display: flex;
93+ flex-direction: column;
94+ list-style-type: none;
95+ list-style-position: inside;
96+ counter-reset: elementcounter;
97+ padding-left: 0;
98+ @media (${ mediaQueryMin . xs } ) {
99+ width: 80%;
100+ margin: 0 auto;
101+ }
102+ @media (${ mediaQueryMin . sm } ) {
103+ flex-direction: row;
104+ width: 100%;
105+ padding-left: 1em;
106+ li {
107+ padding-right: 2em;
108+ p {
109+ padding-right: 4em;
110+ }
111+ }
112+ }
113+ li {
114+ flex-basis: 33%;
115+ font-size: 20px;
116+ color: ${ colors . primary } ;
117+ position: relative;
118+ &:before {
119+ content: '0' counter(elementcounter) '. ';
120+ counter-increment: elementcounter;
121+ position: absolute;
122+ right: 1em;
123+ @media (${ mediaQueryMin . sm } ) {
124+ left: -2em;
125+ }
126+ }
127+ h3 {
128+ display: inline-block;
129+ }
130+ }
131+ ` ;
132+
133+ export const Icon = styled . img `
134+ height: 4rem;
135+ width: auto;
136+ @media (${ mediaQueryMin . sm } ) {
137+ height: 4rem;
138+ }
139+ ` ;
140+
141+ export const CircledIcon = styled ( Icon ) `
142+ height: 5rem;
143+ width: auto;
144+ display: block;
145+ margin: 0 auto;
146+ @media (${ mediaQueryMin . xs } ) {
147+ height: 5rem;
148+ }
149+ ` ;
150+
151+ export const IconList = styled . ul `
152+ list-style: none;
153+ margin-left: 0;
154+ transform: translateX(-0.33rem);
155+ display: flex;
156+ align-items: stretch;
157+ width: 100%;
158+ max-width: 30rem;
159+ margin: 0 0 2.66em 0;
160+ li {
161+ flex-direction: column;
162+ display: inline-flex;
163+ width: 100%;
164+ font-size: 0.8rem;
165+ text-align: center;
166+ align-items: center;
167+ justify-content: start;
168+ margin: 0;
169+ img {
170+ @media (${ mediaQueryMin . sm } ) {
171+ width: min-content;
172+ }
173+ }
174+ p {
175+ margin: 0;
176+ }
177+ }
178+ ` ;
179+
180+ export const ParallaxImage = styled . div `
181+ background-image: url(${ team } );
182+ min-height: 500px;
183+ width: 100%;
184+ display: block;
185+ border: none;
186+ background-attachment: fixed;
187+ background-position: center;
188+ background-repeat: no-repeat;
189+ background-size: cover;
190+ @media (${ mediaQueryMin . sm } ) {
191+ background-image: url(${ meeting } );
192+ }
193+ & img {
194+ width: 100%;
195+ height: auto;
196+ }
197+ ` ;
198+
199+ export const Deliverables = styled . ul `
200+ display: flex;
201+ list-style: none;
202+ text-align: center;
203+ align-items: flex-start;
204+ justify-items: center;
205+ li {
206+ display: flex;
207+ flex-direction: column;
208+ align-items: center;
209+ justify-items: center;
210+ width: 33%;
211+
212+ & > * {
213+ margin-top: 1rem;
214+ }
215+ }
216+
217+ @media (${ mediaQueryMin . xs } ) {
218+ margin: 0.5em 1em 0 1em;
219+ }
220+ ` ;
221+
222+ export const PathsRight = styled . img `
223+ display: none;
224+ position: absolute;
225+ height: 120%;
226+ width: fit-content;
227+ right: -10%;
228+ z-index: 0;
229+ @media (${ mediaQueryMin . sm } ) {
230+ display: block;
231+ }
232+ ` ;
233+
234+ export const PathsLeft = styled ( PathsRight ) `
235+ left: -10%;
236+ transform: scaleX(-1);
237+ ` ;
238+
239+ export const Card = styled . div `
240+ background: #271c25;
241+ padding: 1em;
242+ margin-top: 1em;
243+ border-radius: 0.1em;
244+ text-align: center;
245+ @media (${ mediaQueryMin . xs } ) {
246+ padding: 3em;
247+ margin: 0.5em;
248+ }
249+ div {
250+ position: relative;
251+ height: 5em;
252+ margin: 0 auto;
253+ }
254+ h3 {
255+ margin: 2em 0;
256+ }
257+ ` ;
258+
259+ export const FlexCol = styled ( Col ) `
260+ display: flex;
261+ ` ;
262+
263+ export const PathFig = styled . img `
264+ position: absolute;
265+ left: 0;
266+ top: 30%;
267+ z-index: -1;
268+ ` ;
269+
270+ export const Section = styled . section `
271+ position: relative;
272+ padding: 3em 0;
273+ ` ;
274+
275+ export const CTA = styled ( Section ) `
276+ background: #271c25;
277+ text-align: center;
278+ min-height: 35em;
279+ display: flex;
280+ align-items: center;
281+ overflow: hidden;
282+ position: relative;
283+ justify-content: center;
284+ padding: 10vh 2em;
285+ ` ;
286+
287+ export const IconCaption = styled . p `
288+ width: 90%;
289+ text-align: center;
290+ ` ;
291+
292+ export const NewsletterSection = styled ( Section ) `
293+ display: flex;
294+ justify-content: center;
295+ align-items: center;
296+ ` ;
297+
298+ export const NewsletterContainer = styled . div `
299+ margin-top: 2vh;
300+ padding: 10vw;
301+ text-align: center;
302+ max-width: 800px;
303+ @media (min-width: ${ theme . breakpoint . md } ) {
304+ padding: 3vw;
305+ }
306+ ` ;
307+
308+ export const NewsletterSubscribeForm = styled . form `
309+ display: grid;
310+ grid-gap: 10px;
311+ grid-template-columns: repeat(4, 1fr);
312+ grid-template-rows: 50% 50%;
313+ text-align: center;
314+ @media (max-width: ${ theme . breakpoint . xs } ) {
315+ display: block;
316+ }
317+ > input {
318+ grid-column: span 2;
319+ background: ${ theme . colors . white } ;
320+ color: ${ theme . colors . black } ;
321+ @media (max-width: ${ theme . breakpoint . xs } ) {
322+ grid-column: none;
323+ }
324+ }
325+ ` ;
326+
327+ export const NewsletterSubscribeInputField = styled ( InputField ) `
328+ background: ${ theme . colors . secondary } !important;
329+ font-size: 16px;
330+ padding: 1em 1.33em;
331+ color: white !important;
332+ ` ;
333+
334+ export const NewsletterSubscribeButton = styled . button `
335+ display: inline-block;
336+ background: transparent;
337+ padding: 0.66em 2em;
338+ grid-column: 2 / span 2;
339+ border: ${ border } ;
340+ border-radius: 5px;
341+ transition: all 0.2s ease;
342+ font-size: ${ size } ;
343+ line-height: ${ height } ;
344+ letter-spacing: ${ spacing } ;
345+ font-family: ${ font } ;
346+ font-weight: ${ weight } ;
347+ color: ${ color } ;
348+ text-decoration: none;
349+ margin: 1em 0;
350+
351+ @media (max-width: ${ theme . breakpoint . xs } ) {
352+ grid-column: none;
353+ width: 100%;
354+ }
355+
356+ &:hover {
357+ color: ${ theme . colors . white } ;
358+ background: ${ theme . colors . primary } ;
359+ border-color: ${ theme . colors . primary } ;
360+ cursor: pointer;
361+ }
362+ ` ;
363+
364+ export const CTAContent = styled . div `
365+ max-width: 60em;
366+ ` ;
0 commit comments