style.css 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. /* The page is NOT responsive. You can implement responsiveness yourself if you wanna have some fun 😃 */
  2. :root {
  3. --color-primary: #5ec576;
  4. --color-secondary: #ffcb03;
  5. --color-tertiary: #ff585f;
  6. --color-primary-darker: #4bbb7d;
  7. --color-secondary-darker: #ffbb00;
  8. --color-tertiary-darker: #fd424b;
  9. --color-primary-opacity: #5ec5763a;
  10. --color-secondary-opacity: #ffcd0331;
  11. --color-tertiary-opacity: #ff58602d;
  12. --gradient-primary: linear-gradient(to top left, #39b385, #9be15d);
  13. --gradient-secondary: linear-gradient(to top left, #ffb003, #ffcb03);
  14. }
  15. * {
  16. margin: 0;
  17. padding: 0;
  18. box-sizing: inherit;
  19. }
  20. html {
  21. font-size: 62.5%;
  22. box-sizing: border-box;
  23. }
  24. body {
  25. font-family: 'Poppins', sans-serif;
  26. font-weight: 300;
  27. color: #444;
  28. line-height: 1.9;
  29. background-color: #f3f3f3;
  30. }
  31. /* GENERAL ELEMENTS */
  32. .section {
  33. padding: 15rem 3rem;
  34. border-top: 1px solid #ddd;
  35. transition: transform 1s, opacity 1s;
  36. }
  37. .section--hidden {
  38. opacity: 0;
  39. transform: translateY(8rem);
  40. }
  41. .section__title {
  42. max-width: 80rem;
  43. margin: 0 auto 8rem auto;
  44. }
  45. .section__description {
  46. font-size: 1.8rem;
  47. font-weight: 600;
  48. text-transform: uppercase;
  49. color: var(--color-primary);
  50. margin-bottom: 1rem;
  51. }
  52. .section__header {
  53. font-size: 4rem;
  54. line-height: 1.3;
  55. font-weight: 500;
  56. }
  57. .btn {
  58. display: inline-block;
  59. background-color: var(--color-primary);
  60. font-size: 1.6rem;
  61. font-family: inherit;
  62. font-weight: 500;
  63. border: none;
  64. padding: 1.25rem 4.5rem;
  65. border-radius: 10rem;
  66. cursor: pointer;
  67. transition: all 0.3s;
  68. }
  69. .btn:hover {
  70. background-color: var(--color-primary-darker);
  71. }
  72. .btn--text {
  73. display: inline-block;
  74. background: none;
  75. font-size: 1.7rem;
  76. font-family: inherit;
  77. font-weight: 500;
  78. color: var(--color-primary);
  79. border: none;
  80. border-bottom: 1px solid currentColor;
  81. padding-bottom: 2px;
  82. cursor: pointer;
  83. transition: all 0.3s;
  84. }
  85. p {
  86. color: #666;
  87. }
  88. /* This is BAD for accessibility! Don't do in the real world! */
  89. button:focus {
  90. outline: none;
  91. }
  92. img {
  93. transition: filter 0.5s;
  94. }
  95. .lazy-img {
  96. filter: blur(20px);
  97. }
  98. /* NAVIGATION */
  99. .nav {
  100. display: flex;
  101. justify-content: space-between;
  102. align-items: center;
  103. height: 9rem;
  104. width: 100%;
  105. padding: 0 6rem;
  106. z-index: 100;
  107. }
  108. /* nav and stickly class at the same time */
  109. .nav.sticky {
  110. position: fixed;
  111. background-color: rgba(255, 255, 255, 0.95);
  112. }
  113. .nav__logo {
  114. height: 4.5rem;
  115. transition: all 0.3s;
  116. }
  117. .nav__links {
  118. display: flex;
  119. align-items: center;
  120. list-style: none;
  121. }
  122. .nav__item {
  123. margin-left: 4rem;
  124. }
  125. .nav__link:link,
  126. .nav__link:visited {
  127. font-size: 1.7rem;
  128. font-weight: 400;
  129. color: inherit;
  130. text-decoration: none;
  131. display: block;
  132. transition: all 0.3s;
  133. }
  134. .nav__link--btn:link,
  135. .nav__link--btn:visited {
  136. padding: 0.8rem 2.5rem;
  137. border-radius: 3rem;
  138. background-color: var(--color-primary);
  139. color: #222;
  140. }
  141. .nav__link--btn:hover,
  142. .nav__link--btn:active {
  143. color: inherit;
  144. background-color: var(--color-primary-darker);
  145. color: #333;
  146. }
  147. /* HEADER */
  148. .header {
  149. padding: 0 3rem;
  150. height: 100vh;
  151. display: flex;
  152. flex-direction: column;
  153. align-items: center;
  154. }
  155. .header__title {
  156. flex: 1;
  157. max-width: 115rem;
  158. display: grid;
  159. grid-template-columns: 3fr 2fr;
  160. row-gap: 3rem;
  161. align-content: center;
  162. justify-content: center;
  163. align-items: start;
  164. justify-items: start;
  165. }
  166. h1 {
  167. font-size: 5.5rem;
  168. line-height: 1.35;
  169. }
  170. h4 {
  171. font-size: 2.4rem;
  172. font-weight: 500;
  173. }
  174. .header__img {
  175. width: 100%;
  176. grid-column: 2 / 3;
  177. grid-row: 1 / span 4;
  178. transform: translateY(-6rem);
  179. }
  180. .highlight {
  181. position: relative;
  182. }
  183. .highlight::after {
  184. display: block;
  185. content: '';
  186. position: absolute;
  187. bottom: 0;
  188. left: 0;
  189. height: 100%;
  190. width: 100%;
  191. z-index: -1;
  192. opacity: 0.7;
  193. transform: scale(1.07, 1.05) skewX(-15deg);
  194. background-image: var(--gradient-primary);
  195. }
  196. /* FEATURES */
  197. .features {
  198. display: grid;
  199. grid-template-columns: 1fr 1fr;
  200. gap: 4rem;
  201. margin: 0 12rem;
  202. }
  203. .features__img {
  204. width: 100%;
  205. }
  206. .features__feature {
  207. align-self: center;
  208. justify-self: center;
  209. width: 70%;
  210. font-size: 1.5rem;
  211. }
  212. .features__icon {
  213. display: flex;
  214. align-items: center;
  215. justify-content: center;
  216. background-color: var(--color-primary-opacity);
  217. height: 5.5rem;
  218. width: 5.5rem;
  219. border-radius: 50%;
  220. margin-bottom: 2rem;
  221. }
  222. .features__icon svg {
  223. height: 2.5rem;
  224. width: 2.5rem;
  225. fill: var(--color-primary);
  226. }
  227. .features__header {
  228. font-size: 2rem;
  229. margin-bottom: 1rem;
  230. }
  231. /* OPERATIONS */
  232. .operations {
  233. max-width: 100rem;
  234. margin: 12rem auto 0 auto;
  235. background-color: #fff;
  236. }
  237. .operations__tab-container {
  238. display: flex;
  239. justify-content: center;
  240. }
  241. .operations__tab {
  242. margin-right: 2.5rem;
  243. transform: translateY(-50%);
  244. }
  245. .operations__tab span {
  246. margin-right: 1rem;
  247. font-weight: 600;
  248. display: inline-block;
  249. }
  250. .operations__tab--1 {
  251. background-color: var(--color-secondary);
  252. }
  253. .operations__tab--1:hover {
  254. background-color: var(--color-secondary-darker);
  255. }
  256. .operations__tab--3 {
  257. background-color: var(--color-tertiary);
  258. margin: 0;
  259. }
  260. .operations__tab--3:hover {
  261. background-color: var(--color-tertiary-darker);
  262. }
  263. .operations__tab--active {
  264. transform: translateY(-66%);
  265. }
  266. .operations__content {
  267. display: none;
  268. /* JUST PRESENTATIONAL */
  269. font-size: 1.7rem;
  270. padding: 2.5rem 7rem 6.5rem 7rem;
  271. }
  272. .operations__content--active {
  273. display: grid;
  274. grid-template-columns: 7rem 1fr;
  275. column-gap: 3rem;
  276. row-gap: 0.5rem;
  277. }
  278. .operations__header {
  279. font-size: 2.25rem;
  280. font-weight: 500;
  281. align-self: center;
  282. }
  283. .operations__icon {
  284. display: flex;
  285. align-items: center;
  286. justify-content: center;
  287. height: 7rem;
  288. width: 7rem;
  289. border-radius: 50%;
  290. }
  291. .operations__icon svg {
  292. height: 2.75rem;
  293. width: 2.75rem;
  294. }
  295. .operations__content p {
  296. grid-column: 2;
  297. }
  298. .operations__icon--1 {
  299. background-color: var(--color-secondary-opacity);
  300. }
  301. .operations__icon--2 {
  302. background-color: var(--color-primary-opacity);
  303. }
  304. .operations__icon--3 {
  305. background-color: var(--color-tertiary-opacity);
  306. }
  307. .operations__icon--1 svg {
  308. fill: var(--color-secondary-darker);
  309. }
  310. .operations__icon--2 svg {
  311. fill: var(--color-primary);
  312. }
  313. .operations__icon--3 svg {
  314. fill: var(--color-tertiary);
  315. }
  316. /* SLIDER */
  317. .slider {
  318. max-width: 100rem;
  319. height: 50rem;
  320. margin: 0 auto;
  321. position: relative;
  322. /* IN THE END */
  323. overflow: hidden;
  324. }
  325. .slide {
  326. position: absolute;
  327. top: 0;
  328. width: 100%;
  329. height: 50rem;
  330. display: flex;
  331. align-items: center;
  332. justify-content: center;
  333. /* THIS creates the animation! */
  334. transition: transform 1s;
  335. }
  336. .slide > img {
  337. /* Only for images that have different size than slide */
  338. width: 100%;
  339. height: 100%;
  340. object-fit: cover;
  341. }
  342. .slider__btn {
  343. position: absolute;
  344. top: 50%;
  345. z-index: 10;
  346. border: none;
  347. background: rgba(255, 255, 255, 0.7);
  348. font-family: inherit;
  349. color: #333;
  350. border-radius: 50%;
  351. height: 5.5rem;
  352. width: 5.5rem;
  353. font-size: 3.25rem;
  354. cursor: pointer;
  355. }
  356. .slider__btn--left {
  357. left: 6%;
  358. transform: translate(-50%, -50%);
  359. }
  360. .slider__btn--right {
  361. right: 6%;
  362. transform: translate(50%, -50%);
  363. }
  364. .dots {
  365. position: absolute;
  366. bottom: 5%;
  367. left: 50%;
  368. transform: translateX(-50%);
  369. display: flex;
  370. }
  371. .dots__dot {
  372. border: none;
  373. background-color: #b9b9b9;
  374. opacity: 0.7;
  375. height: 1rem;
  376. width: 1rem;
  377. border-radius: 50%;
  378. margin-right: 1.75rem;
  379. cursor: pointer;
  380. transition: all 0.5s;
  381. /* Only necessary when overlying images */
  382. /* box-shadow: 0 0.6rem 1.5rem rgba(0, 0, 0, 0.7); */
  383. }
  384. .dots__dot:last-child {
  385. margin: 0;
  386. }
  387. .dots__dot--active {
  388. /* background-color: #fff; */
  389. background-color: #888;
  390. opacity: 1;
  391. }
  392. /* TESTIMONIALS */
  393. .testimonial {
  394. width: 65%;
  395. position: relative;
  396. }
  397. .testimonial::before {
  398. content: '\201C';
  399. position: absolute;
  400. top: -5.7rem;
  401. left: -6.8rem;
  402. line-height: 1;
  403. font-size: 20rem;
  404. font-family: inherit;
  405. color: var(--color-primary);
  406. z-index: -1;
  407. }
  408. .testimonial__header {
  409. font-size: 2.25rem;
  410. font-weight: 500;
  411. margin-bottom: 1.5rem;
  412. }
  413. .testimonial__text {
  414. font-size: 1.7rem;
  415. margin-bottom: 3.5rem;
  416. color: #666;
  417. }
  418. .testimonial__author {
  419. margin-left: 3rem;
  420. font-style: normal;
  421. display: grid;
  422. grid-template-columns: 6.5rem 1fr;
  423. column-gap: 2rem;
  424. }
  425. .testimonial__photo {
  426. grid-row: 1 / span 2;
  427. width: 6.5rem;
  428. border-radius: 50%;
  429. }
  430. .testimonial__name {
  431. font-size: 1.7rem;
  432. font-weight: 500;
  433. align-self: end;
  434. margin: 0;
  435. }
  436. .testimonial__location {
  437. font-size: 1.5rem;
  438. }
  439. .section__title--testimonials {
  440. margin-bottom: 4rem;
  441. }
  442. /* SIGNUP */
  443. .section--sign-up {
  444. background-color: #37383d;
  445. border-top: none;
  446. border-bottom: 1px solid #444;
  447. text-align: center;
  448. padding: 10rem 3rem;
  449. }
  450. .section--sign-up .section__header {
  451. color: #fff;
  452. text-align: center;
  453. }
  454. .section--sign-up .section__title {
  455. margin-bottom: 6rem;
  456. }
  457. .section--sign-up .btn {
  458. font-size: 1.9rem;
  459. padding: 2rem 5rem;
  460. }
  461. /* FOOTER */
  462. .footer {
  463. padding: 10rem 3rem;
  464. background-color: #37383d;
  465. }
  466. .footer__nav {
  467. list-style: none;
  468. display: flex;
  469. justify-content: center;
  470. margin-bottom: 5rem;
  471. }
  472. .footer__item {
  473. margin-right: 4rem;
  474. }
  475. .footer__link {
  476. font-size: 1.6rem;
  477. color: #eee;
  478. text-decoration: none;
  479. }
  480. .footer__logo {
  481. height: 5rem;
  482. display: block;
  483. margin: 0 auto;
  484. margin-bottom: 5rem;
  485. }
  486. .footer__copyright {
  487. font-size: 1.4rem;
  488. color: #aaa;
  489. text-align: center;
  490. }
  491. .footer__copyright .footer__link {
  492. font-size: 1.4rem;
  493. }
  494. /* MODAL WINDOW */
  495. .modal {
  496. position: fixed;
  497. top: 50%;
  498. left: 50%;
  499. transform: translate(-50%, -50%);
  500. max-width: 60rem;
  501. background-color: #f3f3f3;
  502. padding: 5rem 6rem;
  503. box-shadow: 0 4rem 6rem rgba(0, 0, 0, 0.3);
  504. z-index: 1000;
  505. transition: all 0.5s;
  506. }
  507. .overlay {
  508. position: fixed;
  509. top: 0;
  510. left: 0;
  511. width: 100%;
  512. height: 100%;
  513. background-color: rgba(0, 0, 0, 0.5);
  514. backdrop-filter: blur(4px);
  515. z-index: 100;
  516. transition: all 0.5s;
  517. }
  518. .modal__header {
  519. font-size: 3.25rem;
  520. margin-bottom: 4.5rem;
  521. line-height: 1.5;
  522. }
  523. .modal__form {
  524. margin: 0 3rem;
  525. display: grid;
  526. grid-template-columns: 1fr 2fr;
  527. align-items: center;
  528. gap: 2.5rem;
  529. }
  530. .modal__form label {
  531. font-size: 1.7rem;
  532. font-weight: 500;
  533. }
  534. .modal__form input {
  535. font-size: 1.7rem;
  536. padding: 1rem 1.5rem;
  537. border: 1px solid #ddd;
  538. border-radius: 0.5rem;
  539. }
  540. .modal__form button {
  541. grid-column: 1 / span 2;
  542. justify-self: center;
  543. margin-top: 1rem;
  544. }
  545. .btn--close-modal {
  546. font-family: inherit;
  547. color: inherit;
  548. position: absolute;
  549. top: 0.5rem;
  550. right: 2rem;
  551. font-size: 4rem;
  552. cursor: pointer;
  553. border: none;
  554. background: none;
  555. }
  556. .hidden {
  557. visibility: hidden;
  558. opacity: 0;
  559. }
  560. /* COOKIE MESSAGE */
  561. .cookie-message {
  562. display: flex;
  563. align-items: center;
  564. justify-content: space-evenly;
  565. width: 100%;
  566. background-color: white;
  567. color: #bbb;
  568. font-size: 1.5rem;
  569. font-weight: 400;
  570. }