/* Start  Global Variables */
:root {
    --main-color: #19c8fa;
    --secondary-color: rgb(15 116 143 / 70%);
    --background-color: #f6f6f6;

    --line-height: 2;

    --main-padding: 60px;

    --transition-duration: 0.5s;
}

/* End  Global Variables */

/* Start Regular Used Components */
.main-headings {
    text-align: center;
}

.main-headings h2 {
    font-style: normal;
    font-size: 40px;
    position: relative;
    text-transform: uppercase;
    margin-bottom: 70px;
}

.main-headings h2::before {
    content: '';
    position: absolute;
    height: 2px;
    width: 120px;
    background-color: #333333;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
}

.main-headings h2::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    height: 14px;
    width: 14px;
    border-radius: 50%;
    background-color: white;
    border: 2px solid #333333;
    bottom: -38px;
}

.main-headings p {
    color: #777777;
    margin: 0 auto 100px;
    width: 550px;
    max-width: 100%;
    line-height: var(--line-height);
    text-transform: capitalize
}
/* End Regular Used Components */

/* Start Animation Section */
@keyframes load-progress {
    0% {
        width: 0;
    }
}
/* End Animation Section */

/* Start Setup and Reset General Rules */
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Open Sans", sans-serif;
}

ul {
    list-style: none;
}

a {
    text-decoration: none;
}

::selection {
    background-color: var(--secondary-color);
    color: #f6f6f6;
}

.container {
    padding-left: 15px;
    padding-right: 15px;
    margin-left: auto;
    margin-right: auto;
}

/* Small Screen */
@media (min-width: 768px) {
    .container {
        width: 750px;
    }
}

/* Medium Screen */
@media (min-width: 992px) {
    .container {
        width: 970px;
    }
}

/* Large Screen */
@media (min-width: 1200px) {
    .container {
        width: 1170px;
    }
}

/* End Setup and Reset General Rules */

/* Start Header */
header {
    position: absolute;
    left: 0;
    width: 100%;
    z-index: 2;
}

header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    min-height: 100px;
}

header .container::after {
    content: '';
    position: absolute;
    height: 2px;
    width: calc(100% - 30px);
    background-color: #a2a2a2;
    bottom: 0;
}

header nav .menu {
    color: white;
    font-size: 1.25em;
}

@media (min-width: 768px) {
    header nav .menu {
        display: none;
    }
}

header .logo img {
    height: 40px;
}

header nav {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

header nav ul {
    display: flex;
}

header nav ul li a {
    display: block;
    color: white;
    padding: 40px 10px;
    transition-duration: var(--transition-duration);
    position: relative;
    z-index: 2;
    border-bottom: 2px solid transparent;
}

@media (max-width: 767px) {
    header nav ul {
        display: none;
    }

    header nav .menu:hover+ul {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 15px;
        width: calc(100% - 30px);
        background-color: rgb(0 0 0 / 50%);
    }

    header nav .menu:hover+ul li a {
        padding: 15px;
    }

    header nav .menu+ul li a:hover {
        padding-left: 25px;
    }
}

header nav ul li a.active,
header nav ul li:not(:first-child) a:hover {
    color: var(--main-color);
    border-bottom-color: var(--main-color);
}

header nav .form {
    width: 40px;
    height: 30px;
    border-left: 2px solid white;
    margin-left: 30px;
    position: relative;
}

header nav .form i {
    color: white;
    font-size: 1.25em;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

/* End Header */

/* Start Landing */
.landing {
    min-height: 100vh;
    background-image: url(../assets/landing.jpg);
    background-size: cover;
    position: relative;
}

.landing .overlay {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 60%);
}

.landing .text {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background-color: var(--secondary-color);
    padding: 50px;
    width: 50%;
    display: flex;
    justify-content: flex-end;
}

.landing .text .content {
    color: white;
    max-width: 70%;
}

.landing .text .content h2 {
    font-weight: normal;
    font-size: 30px;
    line-height: 1.5;
    margin-bottom: 30px;
}

.landing .text .content p {
    line-height: var(--line-height);
    font-size: 0.9em;
}

.landing .arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: white;
    transition-duration: var(--transition-duration);
}

.landing .arrow:hover {
    color: var(--main-color);
    transform: translateY(-50%) scale(1.5);
}

.landing .left-arrow {
    left: 15px;
}

.landing .right-arrow {
    right: 15px;
}

@media (max-width: 767px) {
    .landing .text {
        width: 100%;
    }

    .landing .text .content {
        max-width: 100%;
    }

    .landing .arrow {
        display: none;
    }
}

.landing .bullets {
    display: flex;
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
}

.landing .bullets li {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid white;
    margin-right: 15px;
    transition-duration: var(--transition-duration);
}

.landing .bullets li:not(:nth-of-type(2)):hover {
    border-color: var(--main-color);
    background-color: var(--main-color);
}

.landing .bullets li.active {
    border-color: var(--main-color);
    background-color: var(--main-color);
}

/* End landing */

/* Start Services */
.services {
    padding-top: 100px;
    padding-bottom: 100px;
}

@media (min-width: 768px) {
    .services .serv-container {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(450px, 1fr));
        column-gap: 60px;
        row-gap: 40px;
    }
}

.services .serv-container .card {
    display: flex;
    transition-duration: var(--transition-duration);
    padding: 10px;
}

.services .serv-container .card i {
    margin-right: 50px;
}

@media (max-width: 767px) {
    .services .serv-container .card {
        display: flex;
        flex-direction: column;
        text-align: center;
        align-items: center;
        margin-bottom: 50px;
    }

    .services .serv-container .card i {
        margin-right: 0;
        margin-bottom: 30px;
    }
}

.services .serv-container .card:hover {
    box-shadow: 0 10px 20px #ddd;
    transform: translateY(-5px);
}

.services .serv-container .card h3 {
    color: var(--main-color);
    margin-bottom: 30px;
}

.services .serv-container .card p {
    color: #777777;
    line-height: var(--line-height);
}

/* End Services */

/* Start Design */
.design {
    padding-top: 100px;
    padding-bottom: 100px;
    height: 600px;
    background-image: url(../assets/design-features.jpg);
    background-size: cover;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow: hidden;
}

.design::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 60%);
}

.design .text,
.design .image {
    position: relative;
    z-index: 2;
    flex: 1;
}

.design .image {
    text-align: center;
}

.design .image img {
    position: relative;
    bottom: -150px;
}

.design .text {
    background-color: var(--secondary-color);
    padding: 50px;
    width: 50%;
    color: white;
}

.design .text h2 {
    font-weight: normal;
    margin-bottom: 30px;
    text-transform: uppercase;
}

.design .text ul li {
    padding: 15px 0;
    transition-duration: var(--transition-duration);
}

.design .text ul li:hover {
    padding-left: 20px;
    color: var(--main-color);
}

.design .text ul li::before {
    font-family: 'Font Awesome 5 Free';
    content: '\f108';
    font-weight: 900;
    margin-right: 20px;
    position: relative;
    top: 1px;
    pointer-events: none;
}

@media (max-width: 767px) {
    .design {
        height: auto;
        display: flex;
        flex-direction: column-reverse;
    }

    .design .image img {
        bottom: -200px;
    }

    .design .text {
        width: 100%;
    }
}

/* End Design */

/* Start Portfolio */
.portfolio {
    padding-top: 100px;
    padding-bottom: 100px;
    position: relative;
}

.portfolio .shuffle {
    display: flex;
    justify-content: center;
}

.portfolio .shuffle li {
    padding: 15px;
    transition-duration: var(--transition-duration);
}

.portfolio .shuffle li.active {
    background-color: var(--main-color);
    color: white;
}

.portfolio .shuffle li:not(:first-of-type):hover {
    background-color: var(--main-color);
    color: white;
}

.portfolio .images {
    margin-top: 60px;
    display: flex;
    flex-wrap: wrap;
}

.portfolio .images .box {
    position: relative;
    overflow: hidden;
}

.portfolio .images .box:hover .caption {
    bottom: 0;
}

@media (min-width: 768px) {
    .portfolio .images .box {
        flex-basis: 50%;
    }
}

@media (min-width: 1199px) {
    .portfolio .images .box {
        flex-basis: 25%;
    }
}

.portfolio .images .box .caption {
    padding: 15px;
    background-color: white;
    position: absolute;
    left: 0;
    width: 100%;
    bottom: -100px;
    transition-duration: var(--transition-duration);
    border-bottom: 2px solid var(--main-color);
}

.portfolio .images .caption h4 {
    margin-bottom: 15px;
}

.portfolio .images .caption p {
    color: var(--main-color);
}

.portfolio .images .box:hover img {
    transform: scale(1.1);
}

.portfolio .images .box img {
    max-width: 100%;
    transition-duration: var(--transition-duration);
}

.portfolio .more {
    display: block;
    background-color: var(--main-color);
    width: fit-content;
    padding: 15px 20px;
    color: white;
    margin: 50px auto;
    text-transform: uppercase;
    transition-duration: var(--transition-duration);
}

.portfolio .more:hover {
    transform: scale(1.1);
}

/* End Portfolio */

/* Start Video */
.video {
    position: relative;
}

.video::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 40%);
}

.video video {
    width: 100%;
}

.video .text {
    width: 100%;
    padding: 50px;
    background-color: var(--secondary-color);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    color: white;
}

.video .text h2 {
    margin-bottom: 30px;
    font-weight: normal;
    text-transform: uppercase;
}

.video .text p {
    margin-bottom: 30px;
}

.video .text button {
    background-color: black;
    border: 0;
    color: white;
    padding: 10px 20px;
    text-transform: uppercase;
    transition-duration: var(--transition-duration);
}

.video .text button:hover {
    transform: scale(1.1);
}

/* End Video */

/* Start About */
.about {
    padding-top: 100px;
    text-align: center;
    overflow: hidden;
}

.about img {
    position: relative;
    bottom: -120px;
    margin-top: -120px;
    max-width: 100%;
}

@media (max-width: 767px) {
    .about img {
        bottom: -60px;
        margin-top: -60px;
    }
}

/* End About */

/* Start Statistics */
.stats {
    padding-top: 100px;
    padding-bottom: 100px;
    background-image: url(../assets/stats.png);
    position: relative;
    text-align: center;
    color: white;
}

.stats::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 70%);
}

.stats .container {
    position: relative;
    display: flex;
    flex-wrap: wrap;
}

.stats .container .box {
    background-color: var(--secondary-color);
    padding: 50px;
}

@media (max-width: 767px) {
    .stats .container .box {
        flex-basis: 100%;
    }
}

@media (min-width: 768px) {
    .stats .container .box {
        flex-basis: 50%;
    }
}

@media (min-width: 992px) {
    .stats .container .box {
        flex-basis: 25%;
    }
}

.stats .container .box i {
    width: 60px;
    height: 69.28px;
    background-color: black;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 30px;
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

.stats .container .box .number {
    font-weight: bold;
    font-size: 50px;
    margin-bottom: 20px;
}

.stats .container .box p {
    font-size: 0.9em;
}

/* End Statistics */

/* Start Testimonials & Skills */
.test-skills {
    padding-top: 100px;
    padding-bottom: 100px;
}

.test-skills .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

@media (min-width: 992px) {
    .test-skills .container>div {
        flex-basis: 45%;
    }
}

.test-skills .container>div>h3 {
    margin-bottom: 30px;
    text-align: center;
    font-weight: normal;
    text-transform: uppercase;
}

.test-skills .container>div>p {
    margin-bottom: 30px;
    color: #777777;
    line-height: var(--line-height);
    text-align: center;
}

.test-skills .container .testimonials .content {
    display: flex;
    align-items: center;
    margin-bottom: 30px;
}

.test-skills .container .testimonials .content img {
    width: 100px;
    border-radius: 50%;
    margin-right: 50px;
    transition-duration: var(--transition-duration);
    border: 1px solid var(--main-color);
}

.test-skills .container .testimonials .content img:hover {
    transform: scale(1.1);
}

@media (max-width: 767px) {
    .test-skills .container .testimonials .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .test-skills .container .testimonials .content img {
        margin: 0 auto 20px;
    }
}

.test-skills .container .testimonials .content .text {
    line-height: var(--line-height);
    border-bottom: 2px solid #cccccc;
}

.test-skills .container .testimonials .content .text p {
    color: #777777;
    margin-bottom: 10px;
    text-align: right;
    font-size: 0.9em;
}

.test-skills .container .testimonials .bullets {
    display: flex;
    justify-content: center;
    margin: 50px 0;
}

.test-skills .container .testimonials .bullets li {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #cccccc;
    margin-right: 15px;
    transition-duration: var(--transition-duration);
}

.test-skills .container .testimonials .bullets li:not(:nth-of-type(2)):hover {
    border-color: var(--main-color);
    background-color: var(--main-color);
}

.test-skills .container .testimonials .bullets li.active {
    border-color: var(--main-color);
    background-color: var(--main-color);
}

.test-skills .container .skills .progress-holder {
    margin-bottom: 30px;
}

.test-skills .container .skills .progress-holder .prog {
    height: 30px;
    background-color: #dedadc;
}

.test-skills .container .skills .progress-holder .prog span {
    height: 100%;
    background-color: var(--main-color);
    display: block;
    position: relative;
    animation: load-progress 3s ease-in-out forwards;
}

.test-skills .container .skills .progress-holder .prog span::before {
    content: attr(data-progress);
    position: absolute;
    background-color: black;
    color: white;
    right: -20px;
    top: -45px;
    padding: 5.75px 0;
    width: 40px;
    text-align: center;
    border-radius: 4px;
}

.test-skills .container .skills .progress-holder .prog span::after {
    content: '';
    position: absolute;
    border: 10px solid;
    border-color: black transparent transparent transparent;
    right: -10px;
    top: -16px;
}

.test-skills .container .skills .progress-holder h4 {
    font-weight: normal;
    text-transform: uppercase;
    margin-bottom: 15px;
}

/* End Testimonials & Skills */

/* Start Quote */
.quote {
    padding-top: 100px;
    padding-bottom: 100px;
    background-image: url(../assets/quote.jpg);
    background-size: cover;
    text-align: center;
    position: relative;
    color: white;
}

.quote::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 80%);
}

.quote .container {
    position: relative;
}

.quote .container q {
    font-size: 1.9em;
    margin-bottom: 30px;
    display: block;
    text-transform: capitalize;
}

.quote .container q::before {
    font-family: "Font Awesome 5 Free";
    content: "\f10d";
    font-weight: 900;
}

.quote .container q::after {
    font-family: "Font Awesome 5 Free";
    content: "\f10e";
    font-weight: 900;
}
/* End Quote */

/* Start Pricing */
.pricing {
    padding-top: 100px;
    padding-bottom: 100px;
}

.pricing .container .plans {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 25px;
    text-align: center;
}

.pricing .container .plans .plan {
    border-top: 2px solid var(--main-color);
}

.pricing .container .plans .plan .header {
    margin-top: 30px;
    padding-bottom: 30px;
    border-bottom: 2px solid var(--main-color);
}

.pricing .container .plans .plan .header h3 {
    font-weight: normal;
    text-transform: uppercase;
    margin-bottom: 30px;
}

.pricing .container .plans .plan .header span {
    font-size: 50px;
    font-weight: bold;
}

.pricing .container .plans .plan .header span::before {
    font-size: 1.25rem;
    position: relative;
    content: '$';
    top: -45px;
    left: -5px;
    font-weight: normal;
}

.pricing .container .plans .plan .header span::after {
    font-size: 1.25rem;
    position: relative;
    content: '/Mo';
    bottom: -10px;
    right: 0;
    font-weight: normal;
}

.pricing .container .plans .plan ul {
    border-bottom: 2px solid var(--main-color);
}

.pricing .container .plans .plan ul li {
    padding: 20px;
    position: relative;
}

.pricing .container .plans .plan ul li:not(:last-child)::after {
    position: absolute;
    content: '';
    height: 2px;
    width: 150px;
    background-color: var(--main-color);
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
}

.pricing .container .plans .plan .footer a {
    display: block;
    margin: 30px auto 10px;
    border: 2px solid var(--main-color);
    width: fit-content;
    padding: 15px 30px;
    transition-duration: var(--transition-duration);
}

.pricing .container .plans .plan .footer a:hover {
    background-color: var(--main-color);
    color: white;
    transform: scale(1.05);
}

.pricing .container p {
    text-align: center;
    margin-top: 20px;
    font-size: 1.25em;
}

.pricing .container .contact-link {
    display: block;
    width: fit-content;
    padding: 15px 30px;
    background-color: var(--main-color);
    margin: 20px auto;
    color: white;
    transition-duration: var(--transition-duration);
}

.pricing .container .contact-link:hover {
    transform: scale(1.05);
}
/* End Pricing */

/* Start Subscribe */
.subscribe {
    padding-top: 100px;
    padding-bottom: 100px;
    background-image: url(../assets/subscribe.jpg);
    background-size: cover;
    color: white;
    position: relative;
}

.subscribe::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 50%);
}

.subscribe .container {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(450px, 1fr));
    align-items: center;
}

@media (max-width: 991px) {
    .subscribe .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
}

.subscribe .container .form form {
    display: flex;
    align-items: center;
    position: relative;
}

.subscribe .container .form form input[type="email"] {
    background: none;
    padding: 20px 20px 20px 60px;
    caret-color: var(--main-color);
    border: 2px solid white;
    border-right: none;
}

.subscribe .container .form form input[type="email"]:focus {
    outline: none;
}

.subscribe .container .form form input[type="email"]::placeholder {
    color: white;
}

.subscribe .container .form form i {
    position: absolute;
    left: 20px;
}

.subscribe .container .form form input[type="submit"] {
    padding: 20px;
    border: 2px solid white;
    border-left: none;
    background-color: var(--main-color);
    color: white;
}

@media (max-width: 991px) {
    .subscribe .container .form {
        width: 100%;
    }

    .subscribe .container .form form {
        width: 100%;
    }

    .subscribe .container .form form input[type="email"] {
        min-width: 0;
        flex: 1;
    }
}


.subscribe .container .paragraph p {
    line-height: var(--line-height);
    text-transform: capitalize;
}

@media (max-width: 991px) {
    .subscribe .container .paragraph {
        margin-top: 30px;
    }
}
/* End Subscribe */

/* Start Contact */
.contact {
    padding-top: 100px;
    padding-bottom: 100px;
}

.contact .container .content {
    display: grid;
    grid-template-columns: 70% 25%;
    column-gap: 5%;
}

.contact .container .content .form form {
    display: flex;
    flex-direction: column;
}

.contact .container .content .form form input,
.contact .container .content .form form textarea {
    margin-bottom: 20px;
    padding: 20px;
    border: 1px solid #cccccc;
    caret-color: var(--main-color);
}

.contact .container .content .form form input[type="submit"] {
    width: fit-content;
    display: flex;
    margin-left: auto;
    background-color: var(--main-color);
    border: none;
    color: white;
    cursor: pointer;
    text-transform: uppercase;
    transition-duration: var(--transition-duration);
}

.contact .container .content .form form input[type="submit"]:hover {
    transform: scale(1.05);
}

.contact .container .content .form form textarea {
    height: 200px;
}

.contact .container .content .form form input:focus,
.contact .container .content .form form textarea:focus {
    outline: none;
}

.contact .container .content .info {
    display: grid;
    grid-template-rows: 30% calc(70% - 25px);
    row-gap: 25px;
}

.contact .container .content .info h4 {
    text-transform: uppercase;
    font-weight: 500;
    font-size: 1.2rem;
    margin-bottom: 20px;
}

.contact .container .content .info .phone span {
    display: block;
    margin-bottom: 10px;
    color: #777777;
}

.contact .container .content .info .address address {
    color: #777777;
    line-height: var(--line-height);
}

@media (max-width: 767px) {
    .contact .container .content {
        grid-template-columns: 100%;
    }

    .contact .container .content .info {
        order: -1;
        display: grid;
        grid-template-columns: 48% 48%;
        column-gap: 4%;
        text-align: center;
    }
}
/* End Contact */

/* Start Footer */
footer {
    padding-top: 60px;
    padding-bottom: 60px;
    position: relative;
    background-image: url(../assets/subscribe.jpg);
    color: white;
    text-align: center;
}

footer::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 80%);
}

footer .container {
    position: relative;
}

footer .container img {
    margin-bottom: 30px;
}

footer .container p:first-of-type {
    text-transform: uppercase;
    font-size: 1.375rem;
    width: fit-content;
    margin: 20px auto;
    padding: 20px;
    border-bottom: 2px solid white;
}

footer .container .social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition-duration: var(--transition-duration);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 15px;
    color: white;
}

footer .container .social a:last-of-type {
    margin-right: 0;
}

footer .container .social a:has(.facebook-icon):hover {
    background-color: #1877f2;
}

footer .container .social a:has(.x-icon):hover {
    background-color: black;
}

footer .container .social a:has(.home-icon):hover {
    background-color: var(--main-color);
}

footer .container .social a:has(.linkedin-icon):hover {
    background-color: #0a66c2;
}

footer .container p:last-of-type {
    margin-top: 50px;
    text-transform: capitalize;
}

footer .container p:last-of-type span {
    color: var(--main-color);
    font-weight: bold;
    font-size: 1.25rem;
}
/* End Footer */