tps-site/assets/css/components/3-page/home.scss

834 lines
18 KiB
SCSS

// Hero =============================
.hero {
position: relative;
overflow: hidden;
&_item {
position: relative;
height: 900px !important;
&.swiper-slide-active {
.hero_item-title,
.hero_item-txt,
.hero_item-link {
top: 0;
opacity: 1;
}
.hero_item-txt {
animation-delay: .5s;
}
.hero_item-link {
animation-delay: .7s;
}
}
&-photo {
height: 100%;
width: 100%;
position: absolute;
top: 0;
left: 0;
img {
@include ImgCov;
}
}
.inner {
height: 100%;
.auto_container {
display: flex;
align-items: center;
height: 100%;
}
}
&-info {
max-width: 750px;
width: 100%;
}
&-title {
font-weight: 700;
font-size: 38px;
line-height: 46px;
color: #FFFFFF;
position: relative;
transition: all 1s linear;
top: 50px;
opacity: 0;
}
&-txt {
font-weight: 400;
font-size: 16px;
line-height: 36px;
color: #FFFFFF;
margin: 30px 0;
position: relative;
transition: all 1s linear;
top: 65px;
opacity: 0;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
&-link {
transition: all 1s linear;
position: relative;
top: 80px;
opacity: 0;
a {
border: 1px solid #fff;
font-weight: 500;
font-size: 16px;
line-height: 36px;
color: #FFFFFF;
display: inline-block;
padding: 12px 30px;
@include transition;
&:hover {
background: #fff;
color: $main-color;
}
}
}
}
.swiper {
z-index: 0;
&-wrapper {
z-index: 0;
}
&-pagination {
margin: 0 10px;
display: flex;
align-items: center;
&-bullet {
font-size: 0;
width: 15px;
height: 15px;
border: 1px solid #ffff;
border-radius: 50%;
display: block;
margin: 0 5px;
cursor: pointer;
position: relative;
opacity: .5;
@include transition;
&:hover {
opacity: 1;
}
&-active {
opacity: 1;
&::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
@include transform;
width: 8px;
height: 8px;
background: #fff;
border-radius: 50%;
}
}
}
}
&-button {
&-prev {
cursor: pointer;
display: block;
position: relative;
opacity: 0.5;
@include transition;
&:hover {
opacity: 1;
}
span {
width: 18px;
height: 18px;
display: block;
svg {
@include ImgCon;
}
}
}
&-next {
cursor: pointer;
display: block;
position: relative;
opacity: 0.5;
@include transition;
&:hover {
opacity: 1;
}
span {
width: 18px;
height: 18px;
display: block;
transform: rotate(180deg);
svg {
@include ImgCon;
}
}
}
}
}
&_pag {
position: absolute;
bottom: 50px;
right: 60px;
z-index: 25;
color: #fff;
width: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
}
.page_box {
position: relative;
top: -72px;
overflow: hidden;
// z-index: 15;
// border-bottom: 1px solid red;
&-group {
display: inline-block;
padding: 30px 50px 20px 0;
background: #fff;
position: relative;
&::before {
content: '';
position: absolute;
top: 0;
left: -3499px;
width: 3500px;
height: 100%;
background: #fff;
}
&::after {
content: '';
position: absolute;
top: 0;
right: -94px;
width: 95px;
height: 100%;
background: #fff;
clip-path: polygon(0 0, 0 100%, 80% 100%);
}
}
&-link {
font-weight: 500;
font-size: 18px;
line-height: 22px;
color: $main-color;
position: relative;
&::after {
content: '';
position: absolute;
top: 7px;
right: -42px;
width: 30px;
height: 8px;
background: url("../images/svg/arrow-link.svg") no-repeat center;
background-size: contain;
}
}
}
}
// Hero end =========================
// About =============================
.about {
padding: 120px 0;
&_box {
display: flex;
}
&_info {
width: calc(50% - 25px);
margin-right: 25px;
display: flex;
align-items: flex-start;
flex-direction: column;
&-title {
font-style: normal;
font-weight: 700;
font-size: 38px;
line-height: 46px;
color: #000000;
margin-bottom: 30px;
overflow: hidden;
white-space: nowrap;
letter-spacing: .5px;
position: relative;
}
&-txt {
font-weight: 400;
font-size: 16px;
line-height: 36px;
color: #000000;
margin-bottom: 30px;
&:last-child {
margin-bottom: 0;
}
}
&-link {
position: relative;
display: flex;
align-items: center;
font-weight: 500;
font-size: 16px;
line-height: 36px;
color: #2B72B6;
padding: 12px 30px;
border: 1px solid $main-color;
@include transition;
span {
width: 20px;
height: 25px;
margin-left: 10px;
position: relative;
display: none;
svg {
@include ImgCon;
}
}
&:hover {
color: #fff;
background: $main-color;
span {
display: block;
animation: open-arrow .3s linear;
}
}
}
}
&_video {
width: calc(50%);
margin-left: 25px;
&-box {
position: relative;
width: 100%;
height: 600px;
&::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
@include transform;
background: #E5E5E5;
width: calc(100% - 90px);
height: calc(100% - 100px);
z-index: -1;
}
.square {
position: absolute;
top: 50%;
left: 50%;
@include transform;
width: calc(100% - 30px);
height: calc(100% - 30px);
clip-path: polygon(0 0, 77% 0, 100% 37%, 100% 100%, 22% 100%, 0 63%);
border: 1px solid red;
z-index: 2;
// overflow: hidden
}
img {
@include ImgCov;
clip-path: polygon(0 0, 78% 0, 100% 36%, 100% 100%, 22% 100%, 0 63%);
overflow: hidden;
}
.video_play {
position: absolute;
top: 50%;
left: 50%;
@include transform;
width: 85px;
height: 85px;
background: #ffff;
border-radius: 50%;
display: block;
z-index: 5;
cursor: pointer;
&::before {
content: '';
position: absolute;
top: 50%;
left: 54%;
@include transform;
clip-path: polygon(0 0, 0% 100%, 100% 50%);
background: $main-color;
width: 24px;
height: 27px;
}
}
}
}
}
@keyframes open-arrow {
0% {
left: -20px;
opacity: 0;
}
100% {
opacity: 1;
left: 0;
}
}
@-webkit-keyframes open-arrow {
0% {
left: -20px;
opacity: 0;
}
100% {
opacity: 1;
left: 0;
}
}
@keyframes typing {
from {
width: 0
}
to {
width: 100%
}
}
@-webkit-keyframes typing {
from {
width: 0
}
to {
width: 100%
}
}
// About end =========================
// Services =============================
.service {
overflow: hidden;
&_wrap {
position: relative;
}
.inner {
height: 860px;
position: relative;
}
&_bg {
position: relative;
&-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 860px;
opacity: 0;
@include transition;
transition: opacity .5s linear;
background: url("../images/service-banner.png") no-repeat center;
background-size: cover;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .5);
}
&.main {
opacity: 1;
z-index: -1;
}
img {
@include ImgCov;
}
}
}
&_info {
display: flex;
z-index: 4;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
// overflow: auto;
overflow-x: auto;
}
&_item {
width: calc(16.66% - 1px);
min-width: 250px;
border-right: 1px solid rgba(250, 250, 250, .2);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
text-align: center;
&:last-child {
border-right: none;
}
&:hover {
.service_item-title {
transform: translateY(0px);
}
.service_item-txt {
opacity: 1;
}
}
&-title {
padding: 30px 10px;
font-weight: 700;
font-size: 16px;
line-height: 20px;
position: relative;
transform: translateY(100px);
min-height: 40px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, .6);
transition: .4s linear;
-webkit-transition: .4s linear;
-ms-transition: .4s linear;
}
&-txt {
font-weight: 400;
font-size: 14px;
line-height: 24px;
width: calc(100% - 40px);
margin: 20px auto 0;
opacity: 0;
transition: .4s linear;
-webkit-transition: .4s linear;
-ms-transition: .4s linear;
}
}
}
// Services end =========================
// Contact =============================
.contact {
padding: 100px 0;
&_title {
font-weight: 700;
font-size: 38px;
line-height: 46px;
margin-bottom: 50px;
overflow: hidden;
white-space: nowrap;
letter-spacing: .5px;
position: relative;
}
&_box {
display: flex;
}
&_form {
width: calc(50% - 25px);
margin-right: 25px;
display: flex;
flex-direction: column;
align-items: flex-start;
}
&_input {
width: 100%;
margin-bottom: 20px;
input {
border: 1px solid #D6D6D6;
padding: 12px 20px;
width: calc(100% - 40px);
font-weight: 500;
font-size: 16px;
line-height: 36px;
font-family: 'Montserrat', sans-serif;
&::placeholder {
color: #D6D6D6;
}
}
textarea {
border: 1px solid #D6D6D6;
padding: 12px 20px;
width: calc(100% - 40px);
font-weight: 500;
font-size: 16px;
line-height: 36px;
font-family: 'Montserrat', sans-serif;
resize: none;
height: 180px;
&::placeholder {
color: #D6D6D6;
}
}
}
&_btn {
display: flex;
align-items: center;
border: 1px solid $main-color;
padding: 18px 30px;
background: transparent;
cursor: pointer;
font-weight: 500;
font-size: 16px;
line-height: 36px;
color: $main-color;
font-family: 'Montserrat', sans-serif;
@include transition;
&:hover {
background: $main-color;
color: #fff;
.btn_icon {
// display: none;
opacity: 0;
width: 0;
height: 0;
overflow: hidden;
margin-right: 0;
}
.send_icon {
display: block;
width: 18px;
height: 24px;
opacity: 1;
}
}
span {
width: 18px;
height: 24px;
img {
@include ImgCon;
}
}
.btn_icon {
margin-right: 10px;
@include transition;
}
.send_icon {
margin-left: 15px;
@include transition;
width: 0;
height: 0;
overflow: hidden;
}
}
&_info {
width: calc(50% - 25px);
margin-left: 25px;
}
&_map {
width: 100%;
height: 240px;
margin-bottom: 30px;
iframe {
@include ImgCov;
}
}
&_row {
display: flex;
margin-bottom: 30px;
&:last-child {
margin-bottom: 0;
}
&-group {
margin-top: 7px;
}
&-icon {
width: 40px;
height: 40px;
margin-right: 20px;
}
}
}
// Contact end =========================
// Client =============================
.client {
padding: 50px 0 100px;
background: #F5F5F5;
&_title {
font-weight: 700;
font-size: 38px;
line-height: 46px;
margin-bottom: 50px;
overflow: hidden;
white-space: nowrap;
letter-spacing: .5px;
position: relative;
}
&_item {
width: 100%;
height: 170px !important;
margin: 0 5px;
position: relative;
// border: 1px solid red;
// clip-path: polygon(0 0, 78% 0, 100% 36%, 100% 100%, 22% 100%, 0 63%);
background: url("../images/svg/rec-item.svg") no-repeat center;
background-size: contain;
display: flex !important;
align-items: center;
justify-content: center;
overflow: hidden;
// &::after {
// content: '';
// position: absolute;
// top: 0;
// left: 0;
// width: 100%;
// height: 100%;
// border: 1px solid #ffff;
// clip-path: polygon(0 0, 78% 0, 100% 36%, 100% 100%, 22% 100%, 0 63%);
// }
img {
@include ImgCon;
width: 65%;
height: 80%;
object-fit: contain;
-o-object-fit: contain;
transition: all .5s linear;
&:hover {
transform: scale(1.05);
}
}
}
}
// Client end =========================
.title-animate {
animation: typing 3.5s steps(40, end);
-webkit-animation: typing 3.5s steps(40, end);
}