You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1188 rivejä
27 KiB

  1. @import "_variables";
  2. @import "_mixins";
  3. @import "_breakpoints";
  4. @import "_reset";
  5. #menu {
  6. position: absolute;
  7. opacity: 0;
  8. &:checked {
  9. +.hamburger-menu {
  10. .patty {
  11. background-color: white;
  12. &::before {
  13. transform: rotate(-45deg);
  14. top: 0;
  15. left: 0;
  16. opacity: 0.5;
  17. }
  18. &::after {
  19. transform: rotate(45deg);
  20. top: 0;
  21. left: 0;
  22. opacity: 0.5;
  23. }
  24. }
  25. }
  26. ~header .container .navbar {
  27. height: 55vh;
  28. }
  29. ~header .container .overlay {
  30. width: 100%;
  31. height: 100vh;
  32. position: absolute;
  33. background-color: black;
  34. left: 0;
  35. z-index: 3;
  36. opacity: 0.9;
  37. }
  38. }
  39. }
  40. .hamburger-menu {
  41. position: absolute;
  42. top: 5.5rem;
  43. right: 2rem;
  44. cursor: pointer;
  45. z-index: 5;
  46. display: none;
  47. @include mobile {
  48. display: block;
  49. }
  50. .patty {
  51. width: 1.5rem;
  52. height: 0.2rem;
  53. background-color: black;
  54. position: relative;
  55. transition: transform 0.3s;
  56. &::before {
  57. content: "";
  58. position: absolute;
  59. top: -0.5rem;
  60. left: -0.25rem;
  61. width: 1.5rem;
  62. height: 0.2rem;
  63. background-color: black;
  64. transition: transform 0.3s;
  65. }
  66. &::after {
  67. content: "";
  68. position: absolute;
  69. top: 0.5rem;
  70. left: 0.25rem;
  71. width: 1.5rem;
  72. height: 0.2rem;
  73. background-color: black;
  74. transition: transform 0.3s;
  75. }
  76. }
  77. }
  78. header {
  79. position: relative;
  80. @include mobile {
  81. @include flex-column;
  82. }
  83. .top-bar {
  84. background-color: $quaternary-color;
  85. .container {
  86. @include flex-row;
  87. @include mobile {
  88. width: 100%;
  89. justify-content: space-between;
  90. }
  91. .top-bar-button {
  92. display: flex;
  93. width: 10%;
  94. justify-content: center;
  95. @include mobile {
  96. display: none;
  97. }
  98. a {
  99. color: white;
  100. text-decoration: none;
  101. background-color: $primary-color;
  102. padding: 1rem;
  103. }
  104. }
  105. h5 {
  106. padding-top: 1rem;
  107. text-align: left;
  108. width: 75%;
  109. @include mobile {
  110. width: 70%;
  111. text-align: center;
  112. padding: 0.5rem;
  113. }
  114. }
  115. #lang {
  116. background-color: transparent;
  117. border: none;
  118. width: 5%;
  119. margin-right: 2%;
  120. @include mobile {
  121. display: none;
  122. }
  123. }
  124. .social {
  125. @include flex-center;
  126. width: 10%;
  127. border-left: 1px solid lightgrey;
  128. margin: 0;
  129. @include mobile {
  130. width: 30%;
  131. }
  132. figure {
  133. width: 50%;
  134. display: flex;
  135. }
  136. }
  137. }
  138. }
  139. .mid-bar {
  140. padding: 3rem 0 5rem;
  141. @include mobile {
  142. padding: 2rem 0;
  143. background-color: white;
  144. }
  145. .container {
  146. @include flex-row;
  147. justify-content: space-between;
  148. @include mobile {
  149. @include flex-column;
  150. }
  151. .logo {
  152. width: 25%;
  153. margin-right: 10%;
  154. @include mobile {
  155. width: 100%-40%;
  156. margin-left: 5%;
  157. }
  158. }
  159. .contact-details {
  160. display: flex;
  161. justify-content: flex-end;
  162. width: 22%;
  163. @include mobile {
  164. display: none;
  165. }
  166. .left-icon {
  167. margin-right: 10%;
  168. border: 1px solid lightgrey;
  169. height: 3rem;
  170. width: 3rem;
  171. position: relative;
  172. rotate: 45deg;
  173. img {
  174. width: 35%;
  175. top: 33%;
  176. left: 35%;
  177. position: absolute;
  178. rotate: -45deg;
  179. }
  180. }
  181. .details {
  182. h4 {
  183. color: $tertiary-color;
  184. }
  185. }
  186. }
  187. }
  188. }
  189. .navbar {
  190. @include container;
  191. @include flex-row;
  192. background-color: $secondary-color;
  193. z-index: 1;
  194. position: absolute;
  195. bottom: -2rem;
  196. @include mobile {
  197. @include flex-column;
  198. bottom: auto;
  199. position: relative;
  200. top: 0;
  201. z-index: 3;
  202. height: 0;
  203. overflow: hidden;
  204. transition: height 1s;
  205. }
  206. .menu {
  207. @include flex-row;
  208. margin: 0;
  209. width: 75%;
  210. @include mobile {
  211. @include flex-column;
  212. width: 100%;
  213. margin-top: 4.4rem;
  214. margin-bottom: 1rem
  215. }
  216. a {
  217. @include flex-center;
  218. color: white;
  219. text-transform: uppercase;
  220. font-size: 0.9rem;
  221. font-weight: 500;
  222. padding: 0 1.6rem;
  223. transition: background-color 0.5s;
  224. @include mobile {
  225. padding: 1rem 0;
  226. }
  227. &:hover {
  228. background-color: $primary-color;
  229. }
  230. }
  231. a.active {
  232. background-color: $primary-color;
  233. }
  234. }
  235. .search {
  236. width: 25%;
  237. display: flex;
  238. justify-content: flex-end;
  239. @include mobile {
  240. width: 80%;
  241. position: absolute;
  242. margin-top: 0.8rem;
  243. }
  244. input {
  245. padding: 1rem;
  246. border: none;
  247. background-color: transparent;
  248. color: white;
  249. outline: none;
  250. width: 100%;
  251. }
  252. button {
  253. padding: 0.5rem 1rem;
  254. background-color: transparent;
  255. border: none;
  256. figure {
  257. width: 1rem;
  258. }
  259. }
  260. }
  261. a.cart {
  262. display: flex;
  263. padding: 1.5rem;
  264. background-color: transparent;
  265. transition: background-color 0.5s;
  266. @include mobile {
  267. position: absolute;
  268. top: 0;
  269. right: 0;
  270. border-left: 1px solid rgba(255, 255, 255, 0.2);
  271. }
  272. figure {
  273. width: 1rem;
  274. }
  275. &:hover {
  276. background-color: $primary-color;
  277. }
  278. }
  279. }
  280. }
  281. .upfold {
  282. width: 100%;
  283. position: relative;
  284. overflow: hidden;
  285. object-position: bottom;
  286. height: 65vh;
  287. @include mobile {
  288. height: auto;
  289. img {
  290. width: 100%;
  291. height: 50vh;
  292. object-fit: cover;
  293. }
  294. }
  295. .upfold-text {
  296. position: absolute;
  297. z-index: 2;
  298. top: 30%;
  299. width: 100%;
  300. @include mobile {
  301. top: auto;
  302. bottom: 0;
  303. }
  304. .container {
  305. @include flex-column;
  306. h1 {
  307. font-size: 4rem;
  308. width: 70%;
  309. margin-bottom: 5%;
  310. color: $tertiary-color;
  311. @include mobile {
  312. font-size: 2rem;
  313. text-align: center;
  314. width: 90%;
  315. margin-left: 5%;
  316. margin-bottom: 10%;
  317. }
  318. }
  319. .upfold-links {
  320. @include mobile {
  321. @include flex-row;
  322. }
  323. a {
  324. background-color: white;
  325. color: $tertiary-color;
  326. padding: 0.7rem 2rem;
  327. text-decoration: none;
  328. margin-right: 1%;
  329. text-transform: uppercase;
  330. font-size: 0.8rem;
  331. line-height: 1.5rem;
  332. font-weight: 500;
  333. transition: background-color 0.5s, color 0.5s;
  334. @include mobile {
  335. @include flex-center;
  336. width: 50%;
  337. margin: 0;
  338. }
  339. &:nth-child(1) {
  340. background-color: white;
  341. color: $tertiary-color;
  342. }
  343. &:nth-child(2) {
  344. background-color: $primary-color;
  345. color: white;
  346. }
  347. &:hover {
  348. opacity: 0.8;
  349. }
  350. }
  351. }
  352. }
  353. }
  354. }
  355. .get-quote {
  356. @include flex-row;
  357. background-color: $secondary-color;
  358. color: white;
  359. margin: 0;
  360. padding: 2.5rem 0;
  361. .container {
  362. @include flex-row;
  363. @include mobile {
  364. @include flex-column;
  365. margin: 0 2rem;
  366. height: 25vh;
  367. justify-content: space-between;
  368. }
  369. .get-quote-text {
  370. width: 90%;
  371. @include mobile {
  372. width: 100%;
  373. h2 {
  374. margin-bottom: 2rem;
  375. }
  376. }
  377. }
  378. .get-quote-button {
  379. display: flex;
  380. a {
  381. background-color: $primary-color;
  382. color: white;
  383. text-decoration: none;
  384. text-transform: uppercase;
  385. width: 10%;
  386. text-align: center;
  387. padding: 1rem;
  388. font-weight: 600;
  389. font-size: small;
  390. width: 100%;
  391. margin-top: 0.3rem;
  392. opacity: 1;
  393. transition: opacity 0.5s;
  394. &:hover {
  395. opacity: 0.8;
  396. }
  397. }
  398. }
  399. }
  400. }
  401. .about {
  402. padding: 5% 0;
  403. text-align: center;
  404. @include mobile {
  405. padding: 3rem 0;
  406. padding-bottom: 0;
  407. }
  408. .container {
  409. @include flex-column;
  410. .about-text {
  411. @include mobile {
  412. width: 90%;
  413. margin: 0 auto;
  414. }
  415. .heading {
  416. padding-bottom: 7%;
  417. color: $secondary-color;
  418. position: relative;
  419. font-size: 2.5rem;
  420. text-align: center;
  421. &::after {
  422. content: '';
  423. height: 5px;
  424. width: 5%;
  425. background-color: $primary-color;
  426. position: absolute;
  427. left: 47.5%;
  428. top: 60%;
  429. }
  430. p {
  431. width: 70%;
  432. margin-left: 15%;
  433. font-size: large;
  434. line-height: 1.5rem;
  435. }
  436. }
  437. }
  438. .services-short {
  439. display: flex;
  440. margin-top: 5%;
  441. box-shadow: 0rem 0 2rem rgba(0, 0, 0, 0.361);
  442. @include mobile {
  443. margin-top: 4rem;
  444. @include flex-column;
  445. }
  446. .content-box {
  447. padding: 3rem;
  448. position: relative;
  449. border-right: 1px solid rgba(196, 196, 196, 0.361);
  450. @include mobile {
  451. border: none;
  452. }
  453. .overlay-blue {
  454. opacity: 0;
  455. transition: opacity 0.5s;
  456. }
  457. &:nth-child(2) {
  458. @include mobile {
  459. @include content-box-hover;
  460. }
  461. }
  462. &:hover {
  463. @include content-box-hover
  464. }
  465. &:nth-child(3) {
  466. border: none;
  467. }
  468. figure {
  469. margin: 0 auto;
  470. margin-bottom: 5%;
  471. width: 2rem;
  472. }
  473. h3 {
  474. color: var(--third-color);
  475. }
  476. p {
  477. font-size: medium;
  478. line-height: 1.5rem;
  479. margin-top: 1rem;
  480. }
  481. }
  482. }
  483. }
  484. }
  485. .progress-report {
  486. background-image: url(images/pexels-karolina-grabowska-5882705.jpg);
  487. background-position: center;
  488. background-repeat: no-repeat;
  489. background-size: cover;
  490. padding: 5% 0;
  491. position: relative;
  492. .container {
  493. @include flex-column;
  494. position: relative;
  495. z-index: 1;
  496. .progress-report-text {
  497. text-align: center;
  498. color: white;
  499. @include mobile {
  500. width: 90%;
  501. margin-left: 5%;
  502. margin-top: 2.5rem;
  503. }
  504. h2 {
  505. font-size: 2.5rem;
  506. margin-bottom: 1rem;
  507. }
  508. p {
  509. font-size: large;
  510. }
  511. }
  512. .progress-report-blocks {
  513. @include flex-row;
  514. justify-content: space-between;
  515. @include mobile {
  516. flex-wrap: wrap;
  517. justify-content: space-between;
  518. height: 50vh;
  519. margin-top: 2rem;
  520. }
  521. .progress-box {
  522. @include flex-column;
  523. align-items: center;
  524. color: white;
  525. margin-top: 5%;
  526. @include mobile {
  527. width: 50%;
  528. }
  529. h2 {
  530. font-size: 3rem;
  531. margin: 0.7rem 0;
  532. }
  533. img {
  534. width: 40px;
  535. }
  536. p {
  537. font-weight: 600;
  538. }
  539. }
  540. }
  541. }
  542. }
  543. .industries {
  544. margin: 5% 0;
  545. @include mobile {
  546. margin: 3rem 0;
  547. }
  548. .container {
  549. @include flex-column;
  550. .heading {
  551. padding-bottom: 7%;
  552. color: $secondary-color;
  553. position: relative;
  554. font-size: 2.5rem;
  555. text-align: center;
  556. @include mobile {
  557. padding-bottom: 5rem;
  558. }
  559. &::after {
  560. content: '';
  561. height: 5px;
  562. width: 5%;
  563. background-color: $primary-color;
  564. position: absolute;
  565. left: 47.5%;
  566. top: 60%;
  567. @include mobile {
  568. width: 20%;
  569. left: 40%;
  570. }
  571. }
  572. }
  573. .industry-list {
  574. display: flex;
  575. flex-direction: row;
  576. flex-wrap: wrap;
  577. margin-top: 2%;
  578. li {
  579. width: 33.33%;
  580. display: flex;
  581. margin-bottom: 5%;
  582. @include mobile {
  583. width: 50%;
  584. @include flex-column;
  585. @include flex-center;
  586. text-align: center;
  587. margin-bottom: 2rem;
  588. }
  589. &:nth-child(4),
  590. &:nth-child(5),
  591. &:nth-child(6) {
  592. margin-bottom: 0;
  593. }
  594. &:nth-child(4) {
  595. @include mobile {
  596. margin-bottom: 2rem;
  597. }
  598. }
  599. figure {
  600. display: flex;
  601. align-items: center;
  602. justify-content: center;
  603. padding: 1rem;
  604. width: 6rem;
  605. height: 3.7rem;
  606. border-radius: 3rem;
  607. background-color: $primary-color;
  608. @include mobile {
  609. width: 4rem;
  610. height: 4rem;
  611. margin-bottom: 1rem;
  612. }
  613. }
  614. .industry-list-text {
  615. display: flex;
  616. flex-direction: column;
  617. margin-left: 5%;
  618. h3 {
  619. color: $tertiary-color;
  620. margin-bottom: 3%;
  621. }
  622. p {
  623. line-height: 1.5rem;
  624. }
  625. }
  626. }
  627. }
  628. }
  629. }
  630. .team {
  631. background-color: $quaternary-color;
  632. padding: 5% 0;
  633. @include mobile {
  634. padding: 3rem 0;
  635. }
  636. .container {
  637. @include flex-column;
  638. .heading-2 {
  639. text-align: center;
  640. margin-bottom: 5%;
  641. h2 {
  642. font-size: 2rem;
  643. margin-bottom: 1%;
  644. }
  645. p {
  646. font-size: medium;
  647. }
  648. }
  649. .staffs {
  650. @include flex-row;
  651. justify-content: space-between;
  652. @include mobile {
  653. flex-wrap: wrap;
  654. justify-content: space-around;
  655. }
  656. li {
  657. width: 25%;
  658. margin-right: 3%;
  659. position: relative;
  660. height: 40vh;
  661. overflow: hidden;
  662. @include mobile {
  663. width: 45%;
  664. margin: 2.5%;
  665. }
  666. &:hover {
  667. .staff-social-media {
  668. bottom: 0;
  669. }
  670. }
  671. &:last-child {
  672. margin: 0;
  673. @include mobile {
  674. margin: 2.5%;
  675. }
  676. }
  677. .staff-photo {
  678. width: 100%;
  679. height: 100%;
  680. overflow: hidden;
  681. img {
  682. @include mobile {
  683. margin-top: 4rem;
  684. }
  685. }
  686. }
  687. .staff-details {
  688. position: absolute;
  689. z-index: 1;
  690. bottom: 0;
  691. display: flex;
  692. flex-direction: column;
  693. text-align: center;
  694. width: 100%;
  695. padding: 1rem;
  696. background-color: $secondary-color;
  697. color: white;
  698. @include mobile {
  699. bottom: auto;
  700. top: 0;
  701. }
  702. }
  703. .staff-social-media {
  704. position: absolute;
  705. z-index: 1;
  706. bottom: -5rem;
  707. display: flex;
  708. flex-direction: row;
  709. justify-content: space-around;
  710. width: 100%;
  711. padding: 1.57rem;
  712. background-color: $primary-color;
  713. color: white;
  714. transition: bottom 0.5s;
  715. @include mobile {
  716. bottom: 0;
  717. padding: 1rem;
  718. }
  719. a {
  720. padding: 0.25rem;
  721. border-radius: 1rem;
  722. figure {
  723. height: 24px;
  724. img {
  725. width: 100%;
  726. }
  727. }
  728. &:hover {
  729. background-color: white;
  730. svg {
  731. fill: $primary-color;
  732. }
  733. }
  734. }
  735. }
  736. }
  737. }
  738. }
  739. }
  740. .quick-enquiry-form {
  741. padding: 4rem 0;
  742. background-image: url(images/pexels-karolina-grabowska-5882705.jpg);
  743. background-position: center;
  744. background-repeat: no-repeat;
  745. background-size: cover;
  746. position: relative;
  747. .container {
  748. @include flex-column;
  749. .heading-2 {
  750. width: 70%;
  751. margin-left: 15%;
  752. position: relative;
  753. z-index: 1;
  754. color: white;
  755. text-align: center;
  756. padding-bottom: 0;
  757. margin-bottom: 0;
  758. @include mobile {
  759. width: 90%;
  760. margin-left: 5%;
  761. }
  762. h2 {
  763. font-size: 2rem;
  764. margin-bottom: 1rem;
  765. }
  766. p {
  767. line-height: 1.5rem;
  768. margin-bottom: 2rem;
  769. }
  770. }
  771. form {
  772. position: relative;
  773. z-index: 1;
  774. display: flex;
  775. width: 100%;
  776. @include mobile {
  777. flex-wrap: wrap;
  778. justify-content: space-around;
  779. }
  780. select,
  781. input,
  782. button {
  783. display: flex;
  784. width: 25%;
  785. margin-right: 1%;
  786. padding: 1rem;
  787. border: none;
  788. font-size: 0.9rem;
  789. @include mobile {
  790. width: 65%;
  791. margin-bottom: 0.5rem;
  792. padding: auto;
  793. margin-right: 0;
  794. }
  795. }
  796. button {
  797. justify-content: center;
  798. color: white;
  799. background-color: $primary-color;
  800. font-weight: 600;
  801. text-transform: uppercase;
  802. }
  803. }
  804. }
  805. }
  806. .clients {
  807. background-color: $quaternary-color;
  808. padding: 2% 0;
  809. .container {
  810. @include flex-row;
  811. align-items: center;
  812. justify-content: space-between;
  813. figure {
  814. display: flex;
  815. width: 20%;
  816. padding: 0 5%;
  817. img {
  818. filter: grayscale(1);
  819. }
  820. }
  821. }
  822. }
  823. footer {
  824. background-color: $secondary-color;
  825. padding: 4% 0;
  826. @include mobile {
  827. padding: 3rem 0;
  828. }
  829. .container {
  830. @include flex-row;
  831. @include mobile {
  832. @include flex-column;
  833. }
  834. .company-details,
  835. .quick-links,
  836. .recent-news,
  837. .newsletter {
  838. @include flex-column;
  839. width: 25%;
  840. color: white;
  841. margin-top: 1rem;
  842. @include mobile {
  843. width: auto;
  844. margin: 2rem 2rem 0 2rem;
  845. }
  846. }
  847. .company-details {
  848. margin-top: 0;
  849. figure {
  850. width: 70%;
  851. }
  852. p {
  853. font-size: small;
  854. margin-top: 2rem;
  855. margin-right: 2rem;
  856. }
  857. ul li {
  858. margin: 1rem 0;
  859. position: relative;
  860. padding-left: 2rem;
  861. font-size: small;
  862. opacity: 0.8;
  863. &::before {
  864. fill: white;
  865. position: absolute;
  866. width: 1rem;
  867. left: 0;
  868. top: 0;
  869. }
  870. &:nth-child(1) {
  871. &::before {
  872. content: url(images/location.svg);
  873. }
  874. }
  875. &:nth-child(2) {
  876. &::before {
  877. content: url(images/call.svg);
  878. }
  879. }
  880. &:nth-child(3) {
  881. &::before {
  882. content: url(images/mail.svg);
  883. }
  884. }
  885. }
  886. }
  887. .quick-links {
  888. width: 25%;
  889. @include mobile {
  890. width: 100%;
  891. }
  892. h3 {
  893. width: 100%;
  894. }
  895. .links {
  896. display: flex;
  897. width: 100%;
  898. margin-top: 2rem;
  899. ul {
  900. width: 50%;
  901. li {
  902. padding: 0.5rem 0;
  903. padding-left: 2rem;
  904. position: relative;
  905. &::before {
  906. position: absolute;
  907. content: url(images/chevron-forward.svg);
  908. width: 1rem;
  909. top: 0.6rem;
  910. left: 0;
  911. opacity: 0.8;
  912. }
  913. a {
  914. text-decoration: none;
  915. color: white;
  916. opacity: 0.8;
  917. font-size: small;
  918. }
  919. }
  920. }
  921. }
  922. }
  923. .recent-news {
  924. padding-right: 2rem;
  925. ul {
  926. margin-top: 2rem;
  927. display: flex;
  928. flex-direction: column;
  929. li {
  930. margin-bottom: 1.5rem;
  931. opacity: 0.8;
  932. h4 {
  933. font-size: 1.1rem;
  934. font-weight: 100;
  935. margin-bottom: 0.5rem;
  936. line-height: 1.5rem;
  937. }
  938. h5 {
  939. padding-left: 1.5rem;
  940. font-weight: 100;
  941. opacity: 0.5;
  942. position: relative;
  943. &::before {
  944. content: url(images/time.svg);
  945. position: absolute;
  946. width: 16px;
  947. top: 0;
  948. left: 0;
  949. }
  950. }
  951. }
  952. }
  953. }
  954. .newsletter {
  955. padding-right: 2rem;
  956. p {
  957. margin-top: 1rem;
  958. margin-bottom: 2rem;
  959. font-size: small;
  960. }
  961. form {
  962. @include flex-column;
  963. input,
  964. button {
  965. padding: 0.8rem;
  966. margin-bottom: 0.3rem;
  967. border: none;
  968. }
  969. button {
  970. background-color: $primary-color;
  971. color: white;
  972. }
  973. }
  974. }
  975. }
  976. }