migrations

This commit is contained in:
2018-03-15 12:42:13 +01:00
parent 29e19deebc
commit 25001e38c9
419 changed files with 44849 additions and 2142 deletions

View File

@@ -1,7 +1,35 @@
$white: #FFFFFF;
$light_gray: #F4F4F4;
$medium_light_gray: #E6E6E6;
$gray: #ADADAD;
$dark_gray: #8f8f8f;
$near_black: #444444;
$black: #000000;
$default_font_family: sans-serif;
$green: #98C53A;
$red: rgba(200, 0, 0, 0.66);
$default_font_family: 'Muli', sans-serif;
$default_font_size: 16px;
$max_breakpoint: 1600px;
@function em($pixels, $context: $default_font_size) {
@if (unitless($pixels)) {
$pixels: $pixels * 1px;
}
@if (unitless($context)) {
$context: $context * 1px;
}
@return $pixels / $context * 1rem;
}
$huge_breakpoint: 1700px;
$large_breakpoint: 1200px;
$medium_breakpoint: 840px;
$small_breakpoint: 600px;
$tiny_breakpoint: 350px;
$reveal_duration: 1.5s;
$reveal_timing_function: $easeOutQuart;

View File

@@ -1,38 +1,24 @@
// Follows Google Fonts Naming Convention with Font Squirrel generation
// Font Specification: Weight, Code, Italic
$fonts: ('extralight', 200, 1),
('light', 300, 1),
('regular', 400, 1),
('semibold', 500, 1),
('bold', 700, 1),
('extrabold', 800, 1),
('black', 900, 1);
$typefaces: (
'Example': (
('thin', 100, true),
('extralight', 200, true),
('light', 300, true),
('regular', 400, true),
('medium', 500, true),
('semibold', 600, true),
('bold', 700, true),
('extrabold', 800, true),
('black', 900, true),
),
);
@each $name, $typeface in $typefaces {
@each $font in $typeface {
$path_prefix: '../fonts/#{$name}/#{to-lower-case($name)}';
@font-face {
font-family: $name;
src: url('#{$path_prefix}-#{nth($font, 1)}.woff2') format('woff2'),
url('#{$path_prefix}-#{nth($font, 1)}.woff') format('woff');
font-weight: nth($font, 2);
font-style: normal;
}
@if (nth($font, 3)) {
@font-face {
font-family: $name;
src: url('#{$path_prefix}-#{nth($font, 1)}italic.woff2') format('woff2'),
url('#{$path_prefix}-#{nth($font, 1)}italic.woff') format('woff');
font-weight: nth($font, 2);
font-style: italic;
}
}
@each $font in $fonts {
@font-face {
font-family: 'Muli';
src: url('../fonts/Muli/muli-#{nth($font, 1)}.woff2') format('woff2'),
url('../fonts/Muli/muli-#{nth($font, 1)}.woff') format('woff');
font-weight: nth($font, 2);
font-style: normal;
}
@font-face {
font-family: 'Muli';
src: url('../fonts/Muli/muli-#{nth($font, 1)}italic.woff2') format('woff2'),
url('../fonts/Muli/muli-#{nth($font, 1)}italic.woff') format('woff');
font-weight: nth($font, 2);
font-style: italic;
}
}

View File

@@ -1,3 +1,73 @@
*, *:before, *:after {
box-sizing: border-box;
}
html {
height: 100%;
width: 100%;
&.r {
font-size: 20px !important;
@media screen and (max-width: $huge_breakpoint) {
font-size: 18px !important;
}
@media screen and (max-width: 1440px) {
font-size: 16px !important;
}
}
}
body {
width: 100%;
height: 100%;
overflow-x: hidden;
&.unload {
> * {
will-change: opacity;
transition: opacity 0.3s $easeOutQuart !important;
opacity: 0 !important;
}
&:before {
position: fixed;
top: 50%;
}
}
}
#canvas {
width: 100%;
height: 100%;
padding-top: em(50px);
position: relative;
.search_results & {
display: none;
}
}
.scroll {
will-change: transform;
}
@mixin reveal_transition() {
transition: opacity $reveal_duration $reveal_timing_function,
transform $reveal_duration $reveal_timing_function !important;
}
.reveal_animation {
@include reveal_transition();
@for $i from 0 through 30 {
&.data_delay_#{$i} {
transition-delay: $i * 0.1s !important;
}
}
&.reveal {
transform: translateX(100px);
opacity: 0 !important;
}
}
.cms-toolbar-expanded {
*.reveal {
transform: none;
opacity: 1 !important;
}
}

View File

@@ -16,39 +16,33 @@ article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
display: block;
}
body {
line-height: 1;
line-height: 1;
}
ol, ul {
list-style: none;
list-style: none;
}
blockquote, q {
quotes: none;
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
border-collapse: collapse;
border-spacing: 0;
}

View File

@@ -1,5 +1,42 @@
html {
font-family: $default_font_family;
font-size: $default_font_size;
@include font_smoothing();
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
h1, .h1 {
font-size: em(60px);
font-weight: 500;
line-height: 1.3;
color: $green;
text-transform: uppercase;
letter-spacing: 0.03em;
text-align: center;
@media screen and (max-width: $medium_breakpoint) {
font-size: em(30px);
}
}
.h1 {
text-transform: none;
text-align: left;
}
h2, .h2 {
font-size: em(40px);
color: $green;
font-weight: 400;
line-height: 1.3;
position: relative;
z-index: 2;
& + * {
margin-top: em(30px) !important;
}
& + .text_slider {
margin-top: em(70px) !important;
}
@media screen and (max-width: $medium_breakpoint) {
font-size: em(30px);
}
}

View File

@@ -1,31 +0,0 @@
$transform_ems: false;
@function em($pixels, $context: $default_font_size) {
@if ($transform_ems) {
@if (unitless($pixels)) {
$pixels: $pixels * 1px;
}
@if (unitless($context)) {
$context: $context * 1px;
}
@return $pixels / $context * 1rem;
} @else {
@return $pixels;
}
}
@mixin font_smoothing {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@mixin absolute_properties() {
@content;
@media screen and (min-width: $max_breakpoint) {
$transform_ems: true !global;
@content;
$transform_ems: false !global;
}
}

View File

@@ -1,7 +1,30 @@
@import "_reset.scss";
@import "_animation.scss";
@import "_util.scss";
@import "_config.scss";
@import "_fonts.scss";
@import "_typography.scss";
@import "_layout.scss";
@import "_layout.scss";
@import "modules/_header.scss";
@import "modules/_search.scss";
@import "modules/_navigation.scss";
@import "modules/_pages.scss";
@import "modules/_contact.scss";
@import "modules/_content.scss";
@import "modules/_admin_editor.scss";
@import "modules/plugins/_quote.scss";
@import "modules/plugins/_slider.scss";
@import "modules/plugins/_section.scss";
@import "modules/plugins/_title_list.scss";
@import "modules/plugins/_section_title.scss";
@import "modules/plugins/_section_text.scss";
@import "modules/plugins/_video.scss";
@import "modules/plugins/_partner.scss";
@import "modules/plugins/_picture.scss";
@import "modules/plugins/_social_media.scss";
@import "modules/plugins/_journey_calculator.scss";
@import "modules/plugins/_download_section.scss";
@import "modules/plugins/_text_slider.scss";
@import "modules/plugins/_highlight_list.scss";
@import "modules/plugins/_timetable.scss";
@import "modules/plugins/_reference_list.scss";
@import "modules/plugins/_form.scss";

View File

@@ -0,0 +1,5 @@
#admin_editor {
padding: 30px;
margin: 0 !important;
text-align: left !important;
}

View File

@@ -0,0 +1,79 @@
.contact {
display: table;
height: 100%;
width: 100%;
}
.contact__frame {
width: 100%;
height: 100%;
display: table-cell;
padding-bottom: em(50px);
text-align: right;
vertical-align: bottom;
position: relative;
@media screen and (max-width: $medium_breakpoint) {
padding-top: em(300px);
}
@media screen and (max-width: $small_breakpoint) {
padding-top: em(200px);
}
}
.contact__map {
position: absolute;
top: 0;
left: 0;
width: 100%;
bottom: 0;
background: $light_gray;
&.reveal {
transform: none;
}
}
.contact__content {
display: inline-block;
vertical-align: bottom;
width: em(420px);
margin-top: em(40px);
text-align: left;
color: $white;
position: relative;
z-index: 100;
}
.contact__content__main {
overflow: hidden;
background: $green;
padding: em(40px);
width: 100%;
h1 {
text-align: left;
color: inherit;
font-size: em(30px);
font-weight: 800;
text-transform: none;
}
.section__text {
color: inherit;
margin: em(20px) 0;
a {
color: $white;
border-bottom: em(1px) solid rgba($white, 0.6);
&:hover {
border-color: $white;
}
}
}
}
.contact__content__backdrop {
position: absolute;
top: em(50px);
left: em(-50px);
right: 0;
bottom: em(-50px);
background: $white;
z-index: -1;
}

View File

@@ -0,0 +1,185 @@
$max-width: 100%;
.content__frame {
width: 100%;
overflow: hidden;
margin-top: em(-50px);
padding-top: em(50px);
}
.content__intro {
width: 100%;
height: 70vh;
min-height: em(400px);
overflow: hidden;
position: relative;
margin-top: em(-50px);
padding: em(50px) 10% 0;
background: $light_gray;
transition: background 0.5s $easeOutQuart;
h1 {
width: 100%;
z-index: 3;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%) translateY(em(40px));
}
&.reveal {
transform: none;
}
&.image {
h1 {
color: $white;
text-shadow: 0 0 em(50px) rgba($black, 0.3);
}
&:after {
content: '';
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: $black;
opacity: 0.2;
z-index: 2;
}
}
@media screen and (max-width: $medium_breakpoint) {
height: 50vh;
h1 {
transform: translateY(-50%) translateY(em(25px));
}
}
}
.content__intro__image {
background-position: center;
background-size: cover;
position: absolute;
will-change: transform;
top: -5%;
left: 0;
width: 100%;
height: 110%;
z-index: 1;
&.reveal {
transform: none;
}
}
.content__container {
width: 100%;
position: relative;
}
.content__main {
width: 100%;
padding: 0 15%;
max-width: $max-width;
margin: 0 auto;
@media screen and (max-width: $huge_breakpoint) {
padding: 0 em(70px);
}
@media screen and (max-width: $large_breakpoint) {
padding: 0 10%;
}
@media screen and (max-width: $medium_breakpoint) {
padding: 0 em(30px);
}
}
.content__navigation {
width: 100%;
position: absolute;
top: 0;
left: 0;
padding-top: em(100px);
margin-top: em(-100px);
&.fixed {
margin-top: 0;
position: fixed;
}
@media screen and (max-width: $large_breakpoint) {
display: none;
}
}
.content__navigation__frame {
width: 100%;
max-width: $max-width;
padding: em(100px) 15%;
margin: 0 auto;
@media screen and (max-width: $huge_breakpoint) {
padding: em(100px) em(70px);
}
}
.content__navigation__main {
width: 20%;
height: auto;
position: relative;
}
.content__navigation__progress {
position: absolute;
top: 0;
left: 0;
width: em(3px);
height: 100%;
background: $light_gray;
display: block;
overflow: hidden;
}
.content__navigation__progress__fill {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 0;
background: $green;
display: block;
transition: height 0.1s $easeOutQuart;
will-change: height;
}
.content__navigation__anchor {
font-size: em(16px);
color: $gray;
letter-spacing: 0.02em;
text-transform: uppercase;
line-height: 1.35;
padding: em(8px) 0 em(8px) em(30px);
text-decoration: none;
display: inline-block;
position: relative;
transform: none;
transition: transform 0.2s ease-in-out, color 0.2s ease-in-out;
word-break: break-word;
hyphens: auto;
&:hover {
transform: translateX(em(10px));
}
&.active {
color: $green;
}
}
.content__wrap {
width: 100%;
padding-left: 25%;
@media screen and (max-width: $large_breakpoint) {
padding-left: 0;
}
}
.content {
width: 100%;
max-width: em(800px);
margin: 0 auto;
position: relative;
z-index: 10;
padding-bottom: em(200px);
}

View File

@@ -0,0 +1,180 @@
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: em(50px);
background: $white;
border-bottom: em(1px) solid $light_gray;
text-align: right;
font-size: 0;
z-index: 506;
box-shadow: 0 -1px 0 0 $light_gray, 0 em(-50px) 0 0 $white;
transition: top 1s $easeInOutQuart;
will-change: transform, top;
.search_open & {
top: 100%;
}
&.reveal {
transform: translateY(-100%);
}
.cms-toolbar-expanded & {
top: 46px;
}
}
.header__logo {
position: fixed;
top: 0;
display: block;
text-decoration: none;
background: $green;
padding: em(12px) em(15px) em(15px) em(15px);
z-index: 510;
transition: z-index 0s 1s;
img {
width: em(100px);
height: em(100px);
display: block;
}
.search_open & {
z-index: 910;
transition: z-index 0s;
}
&.reveal {
transform: translateY(-100%);
opacity: 1;
}
.cms-toolbar-expanded & {
top: 46px;
}
@media screen and (max-width: $medium_breakpoint) {
img {
width: em(70px);
height: em(70px);
display: block;
}
}
}
.header__slogan {
font-size: em(18px);
line-height: em(48px);
height: em(50px);
color: $gray;
font-weight: 300;
position: absolute;
margin-left: em(150px);
top: 0;
display: block;
@media screen and (max-width: $medium_breakpoint) {
display: none;
}
}
.header__logo, .header__slogan {
left: 15%;
.timetable_body & {
left: em(100px);
}
@media screen and (max-width: $huge_breakpoint) {
left: em(70px) !important;
}
@media screen and (max-width: $large_breakpoint) {
left: em(30px) !important;
}
}
.header__button {
height: em(50px);
line-height: em(48px);
display: inline-block;
border-left: em(1px) solid $light_gray;
border-bottom: em(1px) solid $light_gray;
font-size: em(18px);
font-weight: 800;
color: $green;
text-decoration: none;
padding: 0 em(64px) 0 em(18px);
position: relative;
background: $white;
transition: background 0.3s ease-in-out;
vertical-align: middle;
&:hover {
background: darken($white, 1);
}
}
.header__button--navigation {
rect {
transform: none;
transform-origin: 100% 50%;
transition: transform 0.3s $easeOutQuart;
&.line-middle {
transform: scaleX(0.8);
}
}
&:hover {
.line-top {
transform: scaleX(0.8);
}
.line-bottom {
transform: scaleX(0.6);
}
.line-middle {
transform: scaleX(1);
}
}
}
.header__button--close {
position: absolute;
top: 0;
right: 0;
z-index: 5;
background: none;
border: none;
path {
transform: none;
transform-origin: 50% 50%;
transition: transform 0.3s $easeOutQuart;
}
&:hover {
background: none;
path {
transform: rotate(90deg);
}
}
.cms-toolbar-expanded & {
top: 46px;
}
}
.header__button--search {
font-size: 0;
padding-left: 0;
.circle {
transform: none;
transform-origin: 50% 50%;
transition: transform 0.3s $easeOutQuart;
}
&:hover {
.circle {
transform: scale(1.15);
}
}
}
.header__button__icon {
width: em(32px);
height: em(32px);
position: absolute;
top: em(9px);
right: em(16px);
svg {
display: block;
width: 100%;
height: 100%;
fill: $green;
}
}

View File

@@ -0,0 +1,201 @@
.navigation__close {
font-size: 0;
display: block;
position: fixed;
left: 0;
top: 0;
height: 0;
width: 100%;
background: rgba($green, 0.9);
opacity: 0;
transition: height 0s 1s, opacity 1s;
overflow: hidden;
z-index: 940;
.header__button {
transform: translateX(100%);
transition: transform 1s $easeInOutQuart;
color: $white;
svg {
fill: $white;
}
@media screen and (max-width: $medium_breakpoint) {
font-size: 0;
padding-left: 0;
right: auto;
left: 0;
transform: translateX(em(640px));
}
}
body.navigation_open & {
opacity: 1;
height: 100vh;
transition: height 0s, opacity 1s;
.header__button {
transform: translateX(em(-640px));
@media screen and (max-width: $medium_breakpoint) {
transform: none;
}
}
}
}
#navigation {
position: fixed;
z-index: 950;
top: 0;
left: 100%;
width: em(640px);
height: 100%;
transform: none;
transition: transform 1s $easeInOutQuart;
body.navigation_open & {
transform: translateX(-100%);
}
@media screen and (max-width: $medium_breakpoint) {
width: calc(100% - #{em(64px)});
}
}
.navigation {
width: 100%;
min-height: 100vh;
background: $white;
padding: em(80px);
.social_media {
display: inline-block;
vertical-align: top;
width: auto;
}
.social_media__item {
background: $green;
color: $white;
}
@media screen and (max-width: $medium_breakpoint) {
padding: em(60px);
}
@media screen and (max-width: $small_breakpoint) {
padding: em(30px);
}
}
.navigation__lists {
padding: em(80px) 0;
margin-bottom: em(70px);
position: relative;
@media screen and (max-width: $small_breakpoint) {
padding: 0;
margin: em(10px) 0 em(50px) 0;
}
}
.navigation__list__main {
> li {
margin-top: em(30px);
> a {
text-decoration: none;
text-transform: uppercase;
font-size: em(40px);
line-height: 1.3;
letter-spacing: 0.02em;
font-weight: 500;
color: $green;
@media screen and (max-width: $small_breakpoint) {
font-size: em(30px);
}
}
ul {
li {
margin-top: em(8px);
a {
display: inline-block;
padding: em(5px) 0;
color: $dark_gray;
text-transform: uppercase;
letter-spacing: 0.05em;
font-size: em(20px);
text-decoration: none;
line-height: 1.3;
font-weight: 300;
@media screen and (max-width: $small_breakpoint) {
font-size: em(18px);
}
}
}
}
&:first-child {
margin-top: 0;
}
}
}
.navigation__list__meta {
position: absolute;
left: 0;
li {
margin-left: em(20px);
display: inline-block;
a {
color: $dark_gray;
text-decoration: none;
font-size: em(15px);
line-height: 1.3;
}
&:first-child {
margin-left: 0;
}
}
@media screen and (max-width: $small_breakpoint) {
position: relative;
margin-top: em(50px);
li {
margin: 0;
display: block;
a {
display: inline-block;
padding: em(5px) 0;
}
}
}
}
.navigation__list__meta--top {
top: 0;
}
.navigation__list__meta--bottom {
bottom: 0;
}
.navigation__languages {
vertical-align: top;
display: inline-block;
margin-right: em(30px);
margin-bottom: em(20px);
li {
display: inline-block;
height: em(34px);
margin-left: em(9px);
padding: em(6px) 0;
&:first-child {
margin-left: 0;
padding-left: 0;
a {
border-left: none;
padding-left: 0;
}
}
a {
color: $dark_gray;
text-decoration: none;
font-size: em(15px);
text-transform: uppercase;
display: block;
border-left: 1px solid $light_gray;
padding-left: em(10px);
line-height: em(20px);
}
&.active {
font-weight: bold;
}
}
}

View File

@@ -0,0 +1,94 @@
.page_item__frame {
margin-bottom: em(50px);
width: 100%;
display: block;
}
.page_item {
border: em(2px) solid $light_gray;
display: block;
text-decoration: none;
padding-left: 50%;
position: relative;
transition: border-color 0.2s ease-in-out;
&:hover {
border-color: $green;
}
@media screen and (max-width: $large_breakpoint) {
padding: 0;
}
}
.page_item__image {
width: 50%;
position: absolute;
top: 0;
left: 0;
bottom: 0;
overflow: hidden;
background: $light_gray;
@media screen and (max-width: $large_breakpoint) {
width: 100%;
height: em(220px);
position: relative;
}
}
.page_item__image__title {
width: 100%;
padding: 0 em(50px);
color: darken($light_gray, 5);
font-weight: 800;
text-align: center;
font-size: em(50px);
text-transform: uppercase;
line-height: 1.3;
word-break: break-word;
hyphens: auto;
display: block;
position: relative;
top: 50%;
transform: translateY(-50%);
.subpage & {
font-size: em(30px);
}
}
.page_item__image__main {
background-size: cover;
background-position: center;
position: absolute;
top: -10%;
left: 0;
right: 0;
bottom: -10%;
& + .page_item__image__title {
display: none;
}
}
.page_item__content {
width: 100%;
padding: em(35px);
p {
line-height: 1.4;
color: $dark_gray;
margin-bottom: em(30px);
.highlighted {
font-weight: bold;
}
}
.subpage & {
h3 {
font-size: em(24px);
}
}
}
.page_item__button {
text-align: right;
}
.page_list {
padding: em(100px) 0;
}

View File

@@ -0,0 +1,138 @@
#search {
background: $white;
position: fixed;
z-index: 905;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
transform: translateY(-100%);
transition: transform 1s $easeInOutQuart;
.content__frame {
position: relative;
overflow: visible;
}
.content__frame, .content__container, .content__main {
height: 100%;
}
.search_open & {
transform: none;
}
.search_results & {
position: relative;
overflow: visible;
}
}
.search__close {
top: em(50px);
}
.search__content {
padding: em(200px) 0;
width: 100%;
height: 100%;
}
.search__content__main {
width: 100%;
height: 100%;
position: relative;
}
.search__form {
width: 100%;
position: relative;
top: 50%;
transform: translateY(-50%);
transition: top 1s $easeInOutQuart, transform 1s $easeInOutQuart;
will-change: top;
.search_results & {
top: 0;
transform: none;
}
input {
display: block;
width: 100%;
height: em(90px);
font-weight: 300;
font-size: em(35px);
text-indent: em(25px);
padding: 0 em(100px) em(4px) 0;
}
button {
position: absolute;
top: 0;
right: 0;
width: em(90px);
height: em(90px);
font-size: 0;
border: none;
background: none;
-webkit-appearance: none;
cursor: pointer;
display: block;
will-change: transform;
transform: none;
padding: 0;
svg {
fill: $green;
display: inline-block;
height: em(60px);
width: em(60px);
.circle {
transform: none;
transform-origin: 50% 50%;
transition: transform 0.3s $easeOutQuart;
}
}
&:hover, &:focus {
outline: none;
svg {
.circle {
transform: scale(1.15);
}
}
}
}
@media screen and (max-width: $large_breakpoint) {
input {
height: em(60px);
font-size: em(23px);
text-indent: em(17px);
padding: 0 em(66px) em(2px) 0;
}
button {
width: em(60px);
height: em(60px);
svg {
height: em(40px);
width: em(40px);
}
}
}
}
.search__results__amount {
margin: em(35px) 0 em(25px);
}
.search__results {
width: 100%;
transform: translateY(50vh);
transition: transform 1s $easeInOutQuart, opacity 1s $easeInOutQuart;
opacity: 0;
padding-bottom: em(100px);
position: relative;
.search_results & {
opacity: 1;
transform: none;
&.loading {
opacity: 0.2;
&:before {
top: em(180px);
}
}
}
}

View File

@@ -0,0 +1,125 @@
.downloads {
margin: em(50px) em(-10px);
display: flex;
flex-wrap: wrap;
position: relative;
z-index: 1;
li {
vertical-align: top;
display: inline-block;
width: 50%;
padding: em(10px);
}
@media screen and (max-width: $medium_breakpoint) {
display: block;
li {
width: 100%;
}
}
}
.download__item {
width: 100%;
height: 100%;
border: em(2px) solid $light_gray;
padding: em(40px) em(60px) em(40px) em(120px);
display: block;
text-decoration: none;
color: $dark_gray;
position: relative;
background: $white;
min-height: em(124px);
transition: border-color 0.2s ease-in-out;
&:hover {
border-color: $green;
.download__item__icon {
background: $green;
}
.download__item__icon__arrow {
transform: translateY(2px);
}
}
}
.download__item__file {
display: block;
position: absolute;
top: em(25px);
left: em(25px);
width: em(70px);
height: em(70px);
border-radius: 50%;
background: $green;
}
.download__item__file__icon {
width: em(30px);
height: em(40px);
position: absolute;
top: 50%;
left: 50%;
margin-left: em(-15px);
margin-top: em(-20px);
text-align: center;
border: em(2px) solid $white;
border-radius: em(2px);
line-height: em(34px);
font-size: em(11px);
color: $white;
font-weight: 500;
&:before, &:after {
display: block;
content: '';
position: absolute;
top: em(-2px);
right: em(-2px);
}
&:before {
width: em(8px);
height: em(8px);
background: $white;
border-radius: em(2px);
}
&:after {
top: em(-2.5px);
right: em(-2.5px);
border: em(4px) solid;
border-color: $green $green transparent transparent;
}
}
.download__item__title {
display: block;
font-size: em(16px);
font-weight: 800;
line-height: 1.3;
margin-bottom: em(3px);
word-break: break-word;
}
.download__item__description {
display: block;
font-size: em(16px);
font-weight: 300;
line-height: 1.3;
}
.download__item__icon {
display: block;
position: absolute;
top: em(-2px);
right: em(-2px);
width: em(40px);
height: em(40px);
text-align: center;
line-height: em(40px);
background: $light_gray;
transition: background 0.2s ease-in-out;
svg {
fill: $white;
display: inline-block;
width: em(30px);
height: em(30px);
vertical-align: middle;
}
}

View File

@@ -0,0 +1,179 @@
@keyframes rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.form {
margin: em(50px) 0;
opacity: 1;
transition: opacity 0.2s ease-in-out;
position: relative;
z-index: 1;
.section__text {
margin: 0;
}
& + .section__title {
margin-top: em(-75px);
}
}
*.loading {
pointer-events: none;
opacity: 0.4;
transition: opacity 0.2s ease-in-out;
&:before {
content: '';
position: absolute;
top: 40%;
left: 50%;
width: em(70px);
height: em(70px);
margin-top: em(-35px);
margin-left: em(-35px);
border: em(3px) solid;
border-color: $green transparent transparent transparent;
border-radius: 50%;
animation: rotate 1s infinite;
z-index: 100;
}
}
.form__submit {
text-align: right;
}
.button {
display: inline-block;
height: em(45px);
line-height: em(44px);
border: none;
-webkit-appearance: none;
text-align: center;
font-size: em(16px);
text-transform: uppercase;
background: $green;
border-radius: 0;
color: $white;
font-weight: 900;
cursor: pointer;
letter-spacing: 0.02em;
position: relative;
overflow: hidden;
span {
transition: transform 0.4s $easeOutQuart;
}
&:hover {
.button__icon {
transform: none;
}
.button__text {
transform: translateX(100%);
}
}
}
.button__icon {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform: translateX(-100%);
svg {
display: inline-block;
height: em(21px);
width: em(36px);
fill: $white;
margin: em(12px) 0;
}
}
.button__text {
display: inline-block;
transform: none;
padding: 0 em(30px);
min-width: em(200px);
}
.form__field {
width: 100%;
display: block;
margin-bottom: em(15px);
}
input, textarea {
width: 100%;
height: em(45px);
font-size: em(16px);
font-weight: 900;
font-family: $default_font_family;
color: darken($dark_gray, 20);
background: lighten($light_gray, 2);
text-indent: em(14px);
border: none;
transition: background 0.2s ease-in-out;
-webkit-appearance: none;
border-radius: 0;
padding-right: em(5px);
&::placeholder {
color: $gray;
}
&::-webkit-input-placeholder {
color: $gray;
}
&::-moz-placeholder {
color: $gray;
}
&:-ms-input-placeholder {
color: $gray;
}
&:-moz-placeholder {
color: $gray;
}
&:focus {
background: $light_gray;
outline: none;
}
}
textarea {
height: em(150px);
text-indent: 0;
padding: em(12px) em(14px);
resize: vertical;
min-height: em(100px);
}
.form__field__help_text {
margin-top: em(5px);
display: block;
width: 100%;
font-size: em(16px);
font-weight: 300;
color: $dark_gray;
}
.form__success, .form__errors, .form__field__errors {
display: block;
width: 100%;
font-size: em(16px);
font-weight: 700;
line-height: 1.5;
}
.form__errors, .form__field__errors {
color: $red;
}
.form__errors {
margin-bottom: em(30px);
}
.form__field__errors {
margin-top: em(7px);
}

View File

@@ -0,0 +1,124 @@
.highlight_list {
margin: em(50px) em(-10px);
position: relative;
&.full {
margin: em(50px) 0;
}
}
.highlight_list__content {
font-size: 0;
width: 100%;
.section__title {
margin: 0;
}
}
.highlight_list__item__frame {
display: inline-block;
width: 33.333%;
padding: em(35px) em(10px);
position: relative;
z-index: 1;
vertical-align: top;
.full & {
width: 100%;
padding: 0;
margin: em(50px) 0;
}
@media screen and (max-width: $medium_breakpoint) {
width: 100%;
}
}
.highlight_list__item {
font-size: $default_font_size;
text-align: center;
position: relative;
.full & {
text-align: left;
min-height: em(160px);
padding-left: em(200px);
@media screen and (max-width: $medium_breakpoint) {
padding-left: em(115px);
min-height: em(80px);
}
}
@media screen and (max-width: $medium_breakpoint) {
text-align: left;
padding-left: em(115px);
}
}
.highlight_list__item__icon {
height: em(160px);
width: em(160px);
border-radius: 50%;
background: $green;
text-align: center;
color: $white;
display: block;
margin: 0 auto 30px;
i {
display: block;
width: 100%;
position: relative;
top: 50%;
transform: translateY(-50%);
font-size: em(70px);
line-height: 1;
}
.full & {
position: absolute;
top: em(-10px);
left: 0;
@media screen and (max-width: $medium_breakpoint) {
top: 0;
}
}
@media screen and (max-width: $medium_breakpoint) {
position: absolute;
top: 0;
left: 0;
height: em(80px);
width: em(80px);
i {
font-size: em(35px);
}
}
}
.highlight_list__item__icon__animated {
position: absolute;
top: 50%;
left: 50%;
display: block;
width: em(70px);
height: em(70px);
transform: translateX(-50%) translateY(-50%);
@media screen and (max-width: $medium_breakpoint) {
width: em(35px);
height: em(35px);
}
}
.highlight_list__item__title {
font-size: em(16px);
font-weight: 800;
color: $dark_gray;
line-height: 1.3;
margin-bottom: em(10px);
.full & {
font-size: em(18px);
}
}
.highlight_list__item__text {
font-size: em(16px);
font-weight: 300;
color: $dark_gray;
line-height: 1.3;
.full & {
font-size: em(18px);
}
}

View File

@@ -0,0 +1,104 @@
.pac-container {
box-shadow: none;
font-family: $default_font_family;
border-radius: 0;
border-top: 0;
margin-top: em(-45px);
transform: translateY(-100%);
.pac-icon {
display: none;
}
.pac-item {
line-height: em(40px);
padding: 0 em(5px) 0 em(20px);
border-top: em(1px) solid $light_gray;
&:last-child {
border-bottom: em(1px) solid $light_gray;
}
}
.pac-item, .pac-item-query {
font-size: em(16px);
}
&:after {
display: none;
}
}
.journey_calculator {
margin: em(30px) 0;
.section__text {
margin: 0 0 em(10px);
}
}
.journey_calculator__input {
position: relative;
padding-right: em(105px);
transition: padding 0.3s ease-in-out;
will-change: padding;
input {
border: none;
background: $white;
height: em(45px);
}
&.loaded {
.journey_calculator__result {
opacity: 1;
}
}
&.error {
.journey_calculator__result {
opacity: 0;
}
}
&.error + .journey_calculator__message {
display: block;
}
}
.journey_calculator__result {
display: block;
position: absolute;
top: 0;
right: 0;
width: em(95px);
opacity: 0;
line-height: em(45px);
height: em(45px);
background: $white;
font-size: em(16px);
font-weight: 900;
font-family: $default_font_family;
color: darken($dark_gray, 20);
text-align: center;
transition: opacity 0.3s ease-in-out;
text-transform: uppercase;
&:after {
content: attr(data-duration) ' ' attr(data-label);
opacity: 1;
transition: opacity 0.2s ease-in-out;
}
&.loading {
opacity: 1;
&:after {
opacity: 0;
}
&:before {
top: 50%;
width: em(24px);
height: em(24px);
margin-top: em(-12px);
margin-left: em(-12px);
}
}
}
.journey_calculator__message {
width: 100%;
margin-top: em(10px);
font-weight: 500;
font-size: em(16px);
line-height: 1.3;
display: none;
color: $red;
}

View File

@@ -0,0 +1,42 @@
.partner {
width: 100%;
margin: em(50px) 0;
padding-left: em(280px);
position: relative;
min-height: em(200px);
h3 {
margin: 0;
font-weight: 800;
}
p {
margin: em(10px) 0 0 0;
}
@media screen and (max-width: $small_breakpoint) {
padding: 0;
min-height: 0;
}
}
.partner__logo {
position: absolute;
top: 0;
left: 0;
width: em(260px);
height: em(200px);
background: $light_gray;
padding: em(50px) em(30px);
text-align: center;
line-height: em(100px);
img {
vertical-align: middle;
display: inline;
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
}
@media screen and (max-width: $small_breakpoint) {
position: relative;
margin-bottom: em(20px);
}
}

View File

@@ -0,0 +1,29 @@
.picture {
a {
text-decoration: none;
color: inherit;
}
figcaption {
font-size: em(18px);
color: $dark_gray;
line-height: 1.5;
margin-top: em(10px);
}
&.full {
img {
margin-top: -3%;
margin-bottom: -3%;
width: 100%;
height: auto;
}
}
}
.picture__main {
overflow: hidden;
position: relative;
z-index: -1;
&.reveal_animation {
z-index: -1;
}
}

View File

@@ -0,0 +1,74 @@
.quote {
margin: em(50px) 0;
position: relative;
z-index: 1;
color: $dark_gray;
&.image {
padding-right: em(250px);
min-height: em(300px);
}
@media screen and (max-width: $medium_breakpoint) {
&.image {
min-height: 0;
padding-right: 0;
}
}
}
.quote__image__frame {
position: absolute;
top: em(-10px);
right: 0;
width: em(230px);
@media screen and (max-width: $medium_breakpoint) {
position: relative;
top: 0;
width: em(140px);
margin: em(30px) 0 0;
}
}
.quote__image__main {
width: 100%;
padding-bottom: 100%;
height: 0;
overflow: hidden;
border-radius: 50%;
position: relative;
will-change: transform;
& + .quote__source {
margin-top: 25px;
text-align: center;
}
}
.quote__image {
position: absolute;
top: -10%;
left: 0;
display: block;
width: 100%;
height: auto;
}
.quote__content {
font-size: em(35px);
font-weight: 300;
line-height: 1.3;
margin-bottom: em(10px);
&:before {
content: '«';
display: inline;
}
&:after {
content: '»';
display: inline;
}
@media screen and (max-width: $medium_breakpoint) {
font-size: em(25px);
}
}
.quote__source {
font-weight: 800;
}

View File

@@ -0,0 +1,215 @@
.reference_list {
margin: em(50px) 0;
position: relative;
z-index: 1;
height: 0;
padding-bottom: 34.6%;
will-change: padding;
transition: padding 0.5s $easeInOutCubic;
& + .section__title {
margin: 0;
position: relative;
top: em(-50px);
}
& + .section__title + * {
margin-top: 0;
}
&[data-active] {
padding-bottom: 75%;
.reference_list__video__item {
transform: translateY(-30%);
}
.reference_list__frame {
transform: scale(0.3);
}
.reference_list__item__frame--close {
opacity: 1;
}
@media screen and (max-width: $medium_breakpoint) {
padding-bottom: 88.2%;
.reference_list__frame {
transform: scale(0.74);
}
}
}
@for $i from 0 through 2 {
&[data-active="#{$i}"] {
.reference_list__video__item.data_id_#{$i} {
transform: none;
pointer-events: all;
&:before {
display: none;
}
iframe {
opacity: 1 !important;
z-index: 5;
transition: opacity 0.4s ease-in-out 0.3s;
}
& ~ .reference_list__video__item {
transform: translateY(30%);
}
}
}
}
}
.reference_list__frame {
position: relative;
z-index: 1;
transform: none;
transition: transform 0.5s $easeInOutCubic;
transform-origin: 0 0;
}
.reference_list__item__frame--close {
opacity: 0;
transition: opacity 0.5s ease-in-out;
.reference_list__item__image__main {
background: $green;
transition: transform 0.2s ease-in-out;
transform: none;
&:before, &:after {
content: '';
width: em(80px);
height: em(10px);
background: $white;
display: block;
border-radius: 50px;
position: absolute;
top: 50%;
left: 50%;
margin-left: em(-40px);
margin-top: em(-5px);
transform: rotate(45deg);
}
&:after {
transform: rotate(-45deg);
}
@media screen and (max-width: $medium_breakpoint) {
&:before, &:after {
width: em(40px);
height: em(6px);
margin-left: em(-20px);
margin-top: em(-3px);
}
}
}
.reference_list__item:hover {
.reference_list__item__image__main {
transform: rotate(90deg);
}
}
}
.reference_list__content {
width: 100%;
font-size: 0;
white-space: nowrap;
}
.reference_list__item__frame {
display: inline-block;
margin: em(15px) 3.5% em(15px) 0;
font-size: $default_font_size;
width: 31%;
}
.reference_list__item {
display: block;
width: 100%;
height: 100%;
position: relative;
.video__play {
position: absolute;
top: auto;
left: auto;
right: 0;
bottom: 0;
}
@media screen and (max-width: $medium_breakpoint) {
.video__play {
width: em(50px);
height: em(50px);
line-height: em(51px);
svg {
width: em(20px);
height: em(20px);
}
}
}
}
.reference_list__item__image__main {
width: 100%;
padding-bottom: 100%;
height: 0;
overflow: hidden;
border-radius: 50%;
position: relative;
z-index: 1;
clip-path: circle(50% at 50% 50%);
}
.reference_list__item__image {
position: absolute;
top: -15%;
left: 0;
display: block;
width: 100%;
height: auto;
@media screen and (max-width: $medium_breakpoint) {
transform: initial !important;
transition: none !important;
will-change: initial !important;
}
}
.reference_list__video__content {
position: relative;
width: 100%;
}
.reference_list__video__item {
position: absolute;
top: 0;
left: 0;
width: 100%;
transform: translateY(-100%);
transition: transform 0.5s $easeInOutCubic;
pointer-events: none;
&:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: block;
z-index: 10;
}
}
.reference_list__videos {
position: absolute;
top: 0;
left: 0;
width: 100%;
padding-top: 15%;
height: 100%;
overflow: hidden;
.video {
margin: 0;
iframe {
height: 100%;
z-index: 0;
opacity: 0 !important;
transition: opacity 0.2s ease-in-out 0s;
}
.video__thumbnail {
display: none;
}
}
@media screen and (max-width: $medium_breakpoint) {
padding-top: 32%;
}
}

View File

@@ -0,0 +1,9 @@
.section {
padding-top: em(100px);
}
.spacer {
width: 100%;
display: block;
height: 1px;
}

View File

@@ -0,0 +1,36 @@
.section__text {
font-size: em(18px);
color: $dark_gray;
line-height: 1.5;
position: relative;
z-index: 1;
margin: em(50px) 0;
&.columns {
column-count: 2;
column-gap: em(30px);
@media screen and (max-width: $medium_breakpoint) {
column-count: 1;
}
}
strong, b {
font-weight: 500;
}
em, i {
font-style: italic;
}
u {
text-decoration: none;
line-height: 1.3;
border-bottom: em(1px) solid rgba($dark_gray, 0.4);
}
a {
text-decoration: none;
line-height: 1.3;
color: $green;
border-bottom: em(1px) solid rgba($green, 0.4);
transition: border-color 0.2s ease-in-out;
&:hover {
border-color: $green;
}
}
}

View File

@@ -0,0 +1,21 @@
.section__title {
height: 0;
width: 100%;
margin: em(50px) 0;
pointer-events: none;
user-select: none;
}
.section__title__main {
white-space: nowrap;
width: 100%;
height: auto;
transform: translateY(-50%);
font-size: $default_font_size;
}
.section__title__content {
font-size: em(300px);
font-weight: 900;
color: $light_gray;
}

View File

@@ -0,0 +1,290 @@
@mixin disable_slider_navigation() {
opacity: 0.4;
cursor: default;
&:hover {
transform: none;
&:before, &:after {
background: $green;
}
}
}
.slider {
width: 100%;
position: relative;
margin: em(50px) 0;
}
.slider, .text_slider {
@for $i from 0 through 10 {
&[data-active="#{$i}"] {
.slider__image__item {
transform: translateX(-20%);
}
.slider__image__item.data_id_#{$i} {
transform: none;
}
.slider__image__item.data_id_#{$i} ~ .slider__image__item {
transform: translateX(100%);
}
.slider__texts__content, .text_slider__content {
transform: translateX(-100% * $i);
}
.slider__text__item.data_id_#{$i}, .text_slider__item.data_id_#{$i} {
opacity: 1;
}
&[data-last="#{$i}"] {
.slider__navigation--next {
@include disable_slider_navigation();
}
}
}
&[data-last="#{$i}"] {
.text_slider__container {
width: ($i + 1) * 100%;
}
.text_slider__item {
width: 100% / ($i + 1);
}
}
}
&[data-active="0"] {
.slider__navigation--prev {
@include disable_slider_navigation();
}
}
}
.slider__content {
width: 100%;
position: relative;
min-height: em(400px);
padding: em(90px) 0 em(80px);
text-align: right;
vertical-align: top;
@media screen and (max-width: $medium_breakpoint) {
padding: em(300px) 0 0;
}
}
.slider__navigation {
position: absolute;
top: 0;
right: 0;
width: em(90px);
height: em(90px);
line-height: em(75px);
text-align: center;
font-size: 0;
transform: none;
opacity: 1;
text-indent: em(15px);
direction: rtl;
transition: opacity 0.2s ease-in-out;
svg {
fill: $green;
transition: fill 0.2s ease-in-out, transform 0.2s ease-in-out;
display: inline-block;
width: em(35px);
height: em(35px);
vertical-align: middle;
}
html.no-touchevents &:hover {
svg {
fill: darken($green, 10);
transform: translateX(em(5px));
}
}
@media screen and (max-width: $medium_breakpoint) {
width: em(65px);
height: em(65px);
background: $white;
line-height: em(65px);
text-indent: 0;
top: em(300px);
margin-top: em(-65px);
svg {
width: em(25px);
height: em(25px);
}
}
}
.slider__navigation--prev {
right: em(90px);
direction: ltr;
&:hover {
svg {
transform: translateX(em(-5px));
}
}
@media screen and (max-width: $medium_breakpoint) {
right: em(65px);
}
}
.slider__images__frame {
position: absolute;
overflow: hidden;
top: 0;
left: 0;
right: em(180px);
bottom: 0;
z-index: -1;
@media screen and (max-width: $medium_breakpoint) {
right: 10%;
bottom: em(200px);
}
}
.slider__images {
position: absolute;
top: -10%;
left: 0;
right: 0;
bottom: -10%;
font-size: 0;
white-space: nowrap;
}
.slider__image__item {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-position: center;
background-size: cover;
transform: none;
transition: transform 1s $easeInOutQuad;
}
.slider__texts {
display: inline-block;
vertical-align: top;
height: auto;
width: 42%;
position: relative;
z-index: 1;
text-align: left;
font-size: 0;
white-space: nowrap;
overflow: hidden;
padding-bottom: em(40px);
@media screen and (max-width: $medium_breakpoint) {
width: 90%;
}
}
.slider__texts__frame {
width: 100%;
background: $green;
}
.slider__texts__content {
width: 100%;
height: 100%;
transform: none;
transition: transform 0.8s $easeInOutQuad;
}
.slider__text__item {
display: inline-block;
vertical-align: top;
font-size: $default_font_size;
width: 100%;
height: auto;
opacity: 0;
transition: opacity 0.8s $easeInOutQuad;
}
.slider__text__item__content {
width: 100%;
height: auto;
padding: em(30px) em(35px);
white-space: normal;
color: $white;
&.email {
padding-bottom: em(50px);
}
}
.slider__text__item__title {
font-size: em(18px);
font-weight: 700;
margin-bottom: em(5px);
line-height: 1.3;
}
.slider__text__item__subline {
font-size: em(14px);
font-weight: 300;
line-height: 1.3;
}
.slider__text__item__text {
font-size: em(16px);
font-weight: 300;
margin-top: em(20px);
margin-bottom: em(5px);
line-height: 1.4;
}
.slider__text__item__qualifications__title {
margin-top: em(20px);
font-size: em(12px);
text-transform: uppercase;
font-weight: 900;
line-height: 1.3;
letter-spacing: 0.07em;
}
.slider__text__item__qualifications {
margin: em(10px) em(-15px) 0 0;
li {
display: inline-block;
margin-right: em(8px);
margin-bottom: em(8px);
background: $white;
padding: em(5px) em(8px);
font-size: em(14px);
font-weight: 700;
color: darken($green, 10);
line-height: 1.3;
}
.email & {
margin-bottom: em(10px);
}
}
.slider__text__item__email {
display: block;
text-decoration: none;
width: em(70px);
height: em(70px);
background: $white;
border-radius: 50%;
position: absolute;
bottom: em(-30px);
left: 20%;
transform: none;
transition: transform 0.2s ease-in-out, box-shadow 0.2s;
box-shadow: 0 0 em(30px) rgba($black, 0);
text-align: center;
line-height: em(69px);
svg {
display: inline-block;
fill: $green;
width: em(30px);
height: em(30px);
vertical-align: middle;
margin-top: -2px;
}
&:hover {
transform: scale(1.1);
box-shadow: 0 0 em(30px) rgba($black, 0.1);
}
}

View File

@@ -0,0 +1,39 @@
.social_media {
width: 100%;
display: block;
li {
margin-right: em(5px);
display: inline-block;
&:last-child {
margin-right: 0;
}
}
}
.social_media__item {
display: block;
width: em(34px);
height: em(34px);
border-radius: 50%;
background: $white;
line-height: em(34px);
text-align: center;
color: $green;
font-size: em(13px);
transform: none;
transition: transform 0.2s ease-in-out;
will-change: transform;
&:hover {
transform: scale(1.1);
}
}
.content {
.social_media {
margin: em(50px) 0;
}
.social_media__item {
background: $green;
color: $white;
}
}

View File

@@ -0,0 +1,64 @@
.text_slider {
margin: em(50px) 0;
position: relative;
z-index: 1;
.slider__navigation {
top: 50%;
margin-top: em(-45px);
right: em(-40px);
z-index: 5;
}
.slider__navigation--prev {
left: em(-40px);
right: auto;
}
@media screen and (max-width: $medium_breakpoint) {
.slider__navigation {
background: none;
right: em(-40px);
}
.slider__navigation--prev {
left: em(-40px);
}
}
}
.text_slider__frame {
overflow: hidden;
padding: 0 em(60px);
width: 100%;
height: auto;
mask-image: linear-gradient(to right, rgba($black, 0) 0%, $black 10%, $black 90%, rgba($black, 0) 100%);
@media screen and (max-width: $medium_breakpoint) {
padding: 0 em(40px);
}
}
.text_slider__content {
width: 100%;
position: relative;
white-space: nowrap;
font-size: 0;
transform: none;
transition: transform 0.8s $easeInOutQuad;
}
.text_slider__item {
display: inline-block;
font-size: $default_font_size;
vertical-align: middle;
white-space: normal;
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
.text_slider__text {
line-height: 1.3;
font-weight: 700;
font-size: em(35px);
color: $dark_gray;
text-align: center;
@media screen and (max-width: $medium_breakpoint) {
font-size: em(20px);
}
}

View File

@@ -0,0 +1,488 @@
$timetable_count: 15;
#timetable {
width: 100%;
height: 110vh;
position: relative;
overflow: hidden;
&.active {
height: 100%;
overflow: visible;
}
}
.timetable__clock__frame {
position: fixed;
top: 50%;
transform: translateY(-50%);
width: 34%;
left: 33%;
z-index: 560;
@media screen and (max-width: $medium_breakpoint) {
top: em(80px);
width: 300%;
left: 50%;
max-width: 40vh;
transform: translateX(-50%);
}
}
.timetable__clock__main {
width: 100%;
height: 0;
padding-bottom: 100%;
position: relative;
}
.timetable__clock {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
&.reveal {
transform: scale(1.2);
}
}
.timetable__start {
position: absolute;
left: 7%;
width: 86%;
border-radius: 50%;
z-index: -1;
background: $green;
pointer-events: none;
overflow: hidden;
top: 0;
height: 0;
transform: scale(5);
opacity: 1;
transition: transform 1s $easeInOutQuart, opacity 1s $easeInOutQuart, top 0s 1s, height 0s 1s;
#timetable[data-active="0"] & {
transition-delay: 0.9s;
top: 7%;
height: 86%;
opacity: 0.95;
transform: none;
&.reveal {
transform: scale(1.2);
}
}
}
.timetable__clock__progress {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform: rotate(90deg);
opacity: 1;
transition: opacity 0s 1s;
circle {
transition: stroke-dashoffset 1.5s $easeOutExpo;
}
#timetable[data-active="0"] & {
opacity: 0;
}
}
.timetable__clock__design {
display: block;
position: absolute;
top: 4.5%;
left: 4.5%;
width: 91%;
height: 91%;
z-index: 5;
.border {
fill: $light_gray;
}
.line {
fill: $gray;
opacity: 0.25;
transition: fill 0.5s 1s;
#timetable[data-active="0"] & {
transition-delay: 0.5s;
fill: $white;
}
}
.dot {
fill: $medium_light_gray;
transition: fill 0.5s 1s;
#timetable[data-active="0"] & {
transition-delay: 0.5s;
fill: $white;
}
}
}
.timetable__clock__digital {
position: absolute;
top: 50%;
left: 0;
margin-top: -3.5vw;
color: $near_black;
width: 100%;
font-size: 5.5vw;
line-height: 7vw;
text-align: center;
transform: none;
transition: color 1s 1s, transform 1s 1s;
#timetable[data-active="0"] & {
transition-delay: 0s;
color: $white;
}
@media screen and (max-width: $medium_breakpoint) {
margin-top: -1vh;
font-size: 5.5vh;
line-height: 8vh;
transform: translateY(-3vh);
#timetable[data-active="0"] & {
transform: none;
}
}
}
.timetable__clock__digital__intro {
position: absolute;
bottom: 100%;
left: 20%;
width: 60%;
font-size: 1.25vw;
line-height: 1.3;
opacity: 0;
transition: opacity 0.5s 1s;
#timetable[data-active="0"] & {
transition-delay: 0.5s;
opacity: 1;
}
@media screen and (max-width: $medium_breakpoint) {
font-size: 2.2vh;
}
}
#timetable__clock__digital__time span {
display: inline-block;
position: relative;
top: -0.5vw;
@media screen and (max-width: $medium_breakpoint) {
top: -0.5vh;
}
}
.timetable__start__background {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-size: cover;
background-position: center;
z-index: 6;
opacity: 0;
height: 0;
transition: opacity 0s 1s, height 0s 1s;
&.reveal {
transform: none;
}
&:after {
content: '';
display: block;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 50%;
background: linear-gradient(to bottom, rgba($black, 0), rgba($black, 0.3));
}
#timetable[data-active="0"] & {
height: 100%;
opacity: 1;
}
}
.timetable__start__door {
position: fixed;
width: 50%;
background: $green;
z-index: 551;
left: 0;
top: 0;
opacity: 1;
pointer-events: none;
height: 0;
transform: translateX(-100%);
will-change: transform;
transition: opacity 0s 1s, transform 1s $easeInOutQuart 1s, height 0s 2s;
#timetable[data-active="0"] & {
transition: opacity 0s 1s, transform 1s $easeInOutQuart, height 0s;
transform: none;
opacity: 0;
height: 100%;
}
}
.timetable__start__door--right {
left: auto;
right: 0;
transform: translateX(100%);
}
@keyframes point {
0% {
transform: translate(0, 0);
opacity: 0;
}
20% {
opacity: 1;
}
80% {
opacity: 1;
}
100% {
transform: translate(0, em(20px));
opacity: 0;
}
}
.timetable__next {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
text-decoration: none;
color: $green;
text-align: center;
height: em(60px);
z-index: 10;
opacity: 1;
-webkit-tap-highlight-color: transparent;
transition: opacity 4s $reveal_timing_function, color 0s 1s !important;
span {
display: block;
position: absolute;
left: 50%;
bottom: em(40px);
margin-left: em(-15px);
width: em(30px);
height: em(50px);
border: em(2.5px) solid $green;
border-radius: em(50px);
transition: border 0s 1s;
&:before {
content: '';
position: absolute;
top: em(10px);
left: 50%;
width: em(6px);
height: em(6px);
margin-left: em(-3px);
background: $green;
border-radius: 50%;
display: block;
animation: point 2s infinite;
transition: background 0s 1s;
}
#timetable[data-active="0"] & {
border-color: $white;
&:before {
background: $white;
}
}
}
&.hidden {
opacity: 0;
pointer-events: none;
}
#timetable[data-active="0"] & {
color: $black;
&:before {
opacity: 1;
}
}
&.reveal {
transform: none;
}
}
.timetable__intro__placeholder {
width: 100%;
height: 50%;
}
.timetable__item {
position: relative;
z-index: 5;
opacity: 1;
&.even {
.timetable__item__main {
&.reveal {
.timetable__item__image {
transform: translateY(em(150px));
}
.timetable__item__content {
transform: translateY(em(300px));
}
}
}
.timetable__item__image {
transition-delay: 0s;
}
.timetable__item__image__main {
transform: translateY(em(-150px));
}
.timetable__item__content {
transition-delay: 0.2s;
}
.timetable__item__content__frame {
padding-left: 40%;
}
}
&.odd {
.timetable__item__main {
direction: rtl;
}
.timetable__item__content__frame {
padding-right: 40%;
}
}
#timetable[data-active="0"] & {
opacity: 0;
transition: opacity 0s 1s;
}
}
.timetable__item__after {
width: 100%;
height: 50%;
&.last {
height: 25%;
}
}
.timetable__item__main {
display: block;
width: 100%;
white-space: nowrap;
font-size: 0;
&.reveal {
transform: none;
}
@media screen and (max-width: $medium_breakpoint) {
padding: 0 em(30px);
white-space: normal;
}
}
.timetable__item__image {
display: inline-block;
width: 50%;
transform: none;
opacity: 1;
vertical-align: top;
transition: transform 1.5s $easeOutQuart 0.2s, opacity 1.5s $easeOutQuart 0.2s;
.reveal & {
opacity: 0;
transform: translateY(em(300px));
}
@media screen and (max-width: $medium_breakpoint) {
width: 100%;
transition-delay: 0s !important;
margin-bottom: em(40px);
}
}
.timetable__item__image__frame {
position: relative;
width: 100%;
padding-bottom: 65%;
overflow: hidden;
}
.timetable__item__image__main {
background-position: top center;
background-size: cover;
position: absolute;
top: -10%;
left: 0;
right: 0;
bottom: -5%;
transform: translateY(em(-300px));
}
.timetable__item__content {
display: inline-block;
width: 50%;
transform: none;
vertical-align: top;
opacity: 1;
direction: ltr;
white-space: normal;
transition: transform 1.5s $easeOutQuart, opacity 1.5s $easeOutQuart;
.reveal & {
transform: translateY(em(150px));
opacity: 0;
}
@media screen and (max-width: $medium_breakpoint) {
width: 100%;
transition-delay: 0.2s !important;
}
}
.timetable__item__content__frame {
padding: 0 em(100px);
hyphens: auto;
@media screen and (max-width: $huge_breakpoint) {
padding: 0 em(70px);
}
@media screen and (max-width: $large_breakpoint) {
padding: 0 em(30px);
}
@media screen and (max-width: $medium_breakpoint) {
padding: 0 !important;
}
}
.timetable__item__title {
font-size: 30px;
font-weight: 700;
}
.timetable__item__text {
font-weight: 300;
line-height: 1.6;
}
.timetable__titles {
.section__title {
height: auto;
margin: 0;
position: fixed;
left: -10%;
width: auto;
right: -10%;
bottom: 0;
overflow: hidden;
transform: translateX(200%);
mask-image: linear-gradient(to right, rgba($black, 0) 0%, $black 10%, $black 90%, rgba($black, 0) 100%);
opacity: 0;
transition: transform 1.5s $easeInOutQuart, opacity 1.5s $easeInOutQuart;
@for $i from 1 through $timetable_count {
#timetable[data-active="#{$i}"] & {
transform: translateX(-200%);
&.data_id_#{$i} {
transform: none;
opacity: 1;
}
&.data_id_#{$i} ~ .section__title {
transform: translateX(200%);
}
}
}
}
.section__title__main {
transform: translateY(40%);
}
}

View File

@@ -0,0 +1,26 @@
.title_list {
width: 100%;
li {
margin-bottom: em(10px);
padding-left: em(260px);
position: relative;
b {
position: absolute;
top: 0;
left: 0;
display: inline-block;
width: em(240px);
}
}
@media screen and (max-width: $medium_breakpoint) {
li {
margin-bottom: em(20px);
padding-left: 0;
b {
position: relative;
display: block;
width: 100%;
}
}
}
}

View File

@@ -0,0 +1,94 @@
$video_transition_duration: 0.5s;
.video {
margin: em(50px) 0;
position: relative;
width: 100%;
padding-bottom: 56.25%;
height: 0;
&.playing {
.video__thumbnail {
height: 0;
transition: height 0s $video_transition_duration;
}
.video__frame {
opacity: 1;
}
.video__play {
opacity: 0;
}
}
}
.video__frame {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity $video_transition_duration $easeOutQuad;
}
.video__thumbnail {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
transition: height 0s 0s;
&.reveal_animation {
z-index: -1;
}
}
.video__play {
font-size: 0;
display: block;
position: absolute;
top: 50%;
left: 50%;
width: em(70px);
height: em(70px);
margin-top: em(-35px);
margin-left: em(-35px);
background: $green;
border-radius: 50%;
z-index: 2;
transform: none;
will-change: transform;
opacity: 1;
transition: opacity $video_transition_duration $easeOutQuad, transform 0.2s ease-in-out, background 0.2s ease-in-out, box-shadow 0.2s;
box-shadow: 0 0 em(30px) rgba($black, 0);
line-height: em(72.5px);
text-indent: em(2px);
text-align: center;
svg {
display: inline-block;
fill: $white;
transition: fill 0.2s ease-in-out;
width: em(25px);
height: em(25px);
vertical-align: middle;
}
.video__thumbnail:hover &, .reference_list__item:hover & {
background: $white;
transform: scale(1.2);
box-shadow: 0 0 em(30px) rgba($black, 0.2);
svg {
fill: $green;
}
}
}
.video__thumbnail__image {
position: absolute;
top: -10%;
left: 0;
right: 0;
bottom: -10%;
background-size: cover;
background-position: center;
z-index: -1;
}