/* 
 * Home page stylesheet.
 * 
 * @version     0.2.2
 * @author      Lughtbulb Devs <dev@lightbulbdevs.com>
 */

/* # Intro */
.container #main-content .intro {
    color: var(--theme-secondary);
}

.container #main-content .intro {
    align-content: center;
}

.container #main-content .intro p {
    font-size: 2rem;
}

@media screen and (max-width: 800px) {
    .container #main-content .intro p {
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .intro p {
        font-size: 1.25rem;
    }
}

.container #main-content .intro p {
    font-style: italic;
    margin-bottom: 1rem;
}

/* # Services */
.container #main-content>.services,
.container #main-content .works {
    background-color: var(--theme-secondary);
}

/* ## Services Section Heading */
.container #main-content .services>.title,
.container #main-content .works .header>.title,
.container #main-content .partners .title,
.container #main-content .faqs .title {
    font-size: 10rem;
    font-weight: 500;
    font-style: italic;
}

.container #main-content .services>.title,
.container #main-content .works,
.container #main-content .works .works-list .work {
    color: var(--theme-primary);
}

@media screen and (max-width: 1024px) {
    .container #main-content .services>.title,
    .container #main-content .works .header>.title,
    .container #main-content .partners .title,
    .container #main-content .faqs .title {
        font-size: 8rem;
    }
}

@media screen and (max-width: 800px) {
    .container #main-content .services>.title,
    .container #main-content .works .header>.title,
    .container #main-content .partners .title,
    .container #main-content .faqs .title {
        font-size: 5rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .services>.title,
    .container #main-content .works .header>.title,
    .container #main-content .partners .title,
    .container #main-content .faqs .title {
        font-size: 4rem;
    }
}

/* ## Services List */
.container #main-content>.services .services-list {
    padding: 4rem 0;
}

/* ### Service */
.container #main-content>.services .services-list .service {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    background-color: var(--theme-primary);
    padding: 3rem;
    border-radius: 4rem;
}

@media screen and (max-width: 1884px) {
    .container #main-content>.services .services-list .service {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(2, auto);
        grid-template-areas: "thumbnail"
                            "info";
        padding: 1.5rem;
        border-radius: 0.5rem;
    }
}

.container #main-content>.services .services-list .service:nth-child(n+2) {
    margin-top: 8rem;
}

@media screen and (max-width: 800px) {
    .container #main-content>.services .services-list .service:nth-child(n+2) {
        margin-top: 4rem;
    }
}

/* #### Service Info */
@media screen and (max-width: 1884px) {
    .container #main-content>.services .services-list .service .info {
        grid-area: info;
    }
}

/* ##### Service Title */
.container #main-content>.services .services-list .service .info .title,
.container #main-content .to-projects>.title,
.container #main-content .work-with-us>.title {
    font-size: 6rem;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 2.5rem;
}

@media screen and (max-width: 1024px) {
    .container #main-content .services .services-list .service .info .title {
        font-size: 4rem;
    }
}

@media screen and (max-width: 800px) {
    .container #main-content .services .services-list .service .info .title {
        font-size: 3rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .services .services-list .service .info .title {
        font-size: 2.5rem;
    }
}

@media screen and (max-width: 410px) {
    .container #main-content>.services .services-list .service .info .title {
        font-size: 2rem;
    }
}

/* ##### Service Categories */
.container #main-content>.services .services-list .service .info .categories,
.container #main-content>.services .services-list .service .info .summary {
    margin-bottom: 2rem;
}

.container #main-content>.services .services-list .service .info .categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

/* ###### Service Category */
.container #main-content>.services .services-list .service .info .categories .category {
    width: fit-content;
    background-color: var(--theme-primary);
    padding: 0.25rem 1rem 0.4125rem;
    border-radius: 2rem;
    font-size: 1.125rem;
    border: 2px solid var(--theme-border-light-bg);
    cursor: default;
}

@media screen and (max-width: 480px) {
    .container #main-content>.services .services-list .service .info .categories .category {
        font-size: 1rem;
        text-align: center;
    }
}

@media screen and (max-width: 380px) {
    .container #main-content>.services .services-list .service .info .categories .category {
        font-size: 0.825rem;
    }
}

/* ##### Service Summary */
.container #main-content>.services .services-list .service .info .summary {
    font-size: 1.25rem;
}

/* ##### Service CTA */
.container #main-content>.services .services-list .service .info .cta-contact,
.container #main-content .works .projects-link {
    display: block;
    font-size: 1.5rem;
    width: fit-content;
    padding: 0.25rem 1.5rem 0.5rem;
    border: 2px solid var(--theme-secondary);
    border-radius: 2rem;
}

.container #main-content>.services .services-list .service .info .cta-contact {
    color: var(--theme-primary);
    background-color: var(--theme-secondary);
}

@media screen and (max-width: 380px) {
    .container #main-content>.services .services-list .service .info .cta-contact,
    .container #main-content .works .projects-link {
        font-size: 1.25rem;
    }

    .container #main-content>.services .services-list .service .info .cta-contact svg,
    .container #main-content .works .projects-link svg {
        width: 14px !important;
    }
}

.container #main-content>.services .services-list .service .info .cta-contact:hover {
    color: var(--theme-secondary);
    background-color: var(--theme-primary);
}

/* ###### Service CTA SVG */
.container #main-content>.services .services-list .service .info .cta-contact svg,
.container #main-content .works .projects-link svg {
    width: 18px;
    transform: translateY(1px);
}

.container #main-content>.services .services-list .service .info .cta-contact:hover svg,
.container #main-content .works .projects-link:hover svg {
    transform: translate(10px, 1px);
}

/* #### Service Thumbnail */
.container #main-content>.services .services-list .service .thumbnail {
    object-fit: cover;
    width: 100%;
    height: 100%;
    border-top-right-radius: 8rem;
}

@media screen and (max-width: 1884px) {
    .container #main-content>.services .services-list .service .thumbnail {
        grid-area: thumbnail;
    }
}

@media screen and (max-width: 600px) {
    .container #main-content>.services .services-list .service .thumbnail {
        border-top-right-radius: 4rem;
    }
}

@media screen and (max-width: 425px) {
    .container #main-content>.services .services-list .service .thumbnail {
        height: 320px;
    }
}

/* # Development Principles */
/* ## Section Heading */
.container #main-content .development-principles .title {
    font-size: 8rem;
    font-weight: 400;
    line-height: 1.1;
}

@media screen and (max-width: 1024px) {
    .container #main-content .development-principles .title {
        font-size: 6rem;
    }
}

@media screen and (max-width: 800px) {
    .container #main-content .development-principles .title {
        font-size: 4rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .development-principles .title {
        font-size: 3rem;
    }
}

.container #main-content .development-principles>.title {
    text-align: center;
    margin-bottom: 10rem;
}

.container #main-content .development-principles>.title .highlight {
    display: inline-block;
    color: var(--theme-tertiary);
    background-color: var(--theme-secondary);
    padding: 0 0.5rem;
    border-radius: 2rem;
}

/* ## Principles */
/* ### Principles */
.container #main-content .development-principles .principles .principle {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    color: var(--theme-inactive-2);
    padding-bottom: 4rem;
    border-bottom: 2px solid var(--theme-inactive);
    position: relative;
    cursor: default;
}

@media screen and (max-width: 800px) {
    .container #main-content .development-principles .principles .principle {
        flex-direction: column;
        align-items: flex-start;
        color: var(--theme-secondary);
        border-color: var(--theme-secondary);
    }
}

.container #main-content .development-principles .principles .principle:hover {
    color: var(--theme-secondary);
    border-color: var(--theme-secondary);
}

.container #main-content .development-principles .principles .principle:nth-child(n+2) {
    margin-top: 4rem;
}

/* #### Principle Title Container */
.container #main-content .development-principles .principles .principle .title-container,
.container #main-content .development-principles .principles .principle .description {
    position: relative;
    z-index: 2;
}

/* ##### Principle Index */
.container #main-content .development-principles .principles .principle .title-container .index,
.container #main-content .development-principles .principles .principle .description {
    font-size: 1.5rem;
}

/* #### Thumbnail */
.container #main-content .development-principles .principles .principle .thumbnail,
.container #main-content .development-principles .principles .principle .description {
    display: none;
}

.container #main-content .development-principles .principles .principle .thumbnail {
    object-fit: cover;
    border-radius: 1rem;
    position: absolute;
    left: 50%;
    z-index: 1;
    transform: translateX(-50%);
    opacity: 0.5;
}

@media screen and (max-width: 800px) {
    .container #main-content .development-principles .principles .principle .title-container,
    .container #main-content .development-principles .principles .principle .thumbnail,
    .container #main-content .development-principles .principles .principle .description {
        position: static;
    }

    .container #main-content .development-principles .principles .principle .thumbnail,
    .container #main-content .development-principles .principles .principle .description {
        display: block;
        width: 100% !important;
        margin-top: 2rem;
    }

    .container #main-content .development-principles .principles .principle .thumbnail {
        transform: translateX(0);
        height: 320px;
        opacity: 1;
    }
}

/* #### Description */
.container #main-content .development-principles .principles .principle .description {
    width: 380px;
}

.container #main-content .development-principles .principles .principle:hover .description,
.container #main-content .development-principles .principles .principle:hover .thumbnail {
    display: block;
}

/* # Works */
/* ## Works Header */
.container #main-content .works .header {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
    margin-bottom: 4rem;
}

@media screen and (max-width: 1200px) {
    .container #main-content .works .header {
        flex-direction: column-reverse;
    }
}

/* ### Works Header Title */
.container #main-content .works .header>.title,
.container #main-content .works .header .description {
    flex: 1;
}

.container #main-content .works .header>.title,
.container #main-content .works .header .description .title {
    line-height: 1.0;
}

/* ### Works Header Description */
/* #### Works Header Description Title */
.container #main-content .works .header .description .title {
    font-size: 5rem;
    font-weight: 400;
    margin-bottom: 1.5rem;
}

@media screen and (max-width: 1200px) {
    .container #main-content .works .header .description .title {
        font-size: 4rem;
    }
}

@media screen and (max-width: 1024px) {
    .container #main-content .works .header .description .title {
        font-size: 3rem;
    }
}

@media screen and (max-width: 800px) {
    .container #main-content .works .header .description .title {
        font-size: 2.5rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .works .header .description .title {
        font-size: 2rem;
    }
}

/* #### Works Header Description Body */
.container #main-content .works .header .description .body {
    font-size: 1.25rem;
}

@media screen and (max-width: 480px) {
    .container #main-content .works .header .description .body {
        font-size: 1.125rem;
    }
}

/* ## Works List */
.container #main-content .works .works-list {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 2rem;
}

@media screen and (max-width: 1024px) {
    .container #main-content .works .works-list {
        display: flex;
        flex-direction: column;
    }
}

/* ### Work */
.container #main-content .works .works-list .work {
    grid-column: span 6;
}

.container #main-content .works .works-list .work:nth-child(1) {
    grid-column: span 12;
}

.container #main-content .works .works-list .work-filtered-out {
    display: none;
}

/* #### Work Metadata */
.container #main-content .works .works-list .work .metadata,
.container #main-content .works .works-list .work .summary .thumbnail,
.container #main-content .works .works-list .work .summary .body {
    border-radius: 1rem;
}

.container #main-content .works .works-list .work .metadata,
.container #main-content .works .works-list .work .metadata .client,
.container #main-content .works .works-list .work .metadata .year {
    font-weight: 400;
}

.container #main-content .works .works-list .work .metadata {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.125rem;
    font-weight: 500;
    padding: 1rem 1rem 2.125rem;
    margin-bottom: -1.25rem;
    border: 1px solid var(--theme-border-dark-bg);
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

@media screen and (max-width: 480px) {
    .container #main-content .works .works-list .work .metadata {
        flex-direction: column;
    }
}

.container #main-content .works .works-list .work .metadata .client {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media screen and (max-width: 480px) {
    .container #main-content .works .works-list .work .metadata .client {
        text-align: center;
        width: 100%;
    }
}

.container #main-content .works .works-list .work .metadata .year {
    font-style: italic;
    min-width: fit-content;
}

@media screen and (max-width: 480px) {
    .container #main-content .works .works-list .work .metadata .year {
        font-size: 1rem;
    }
}

/* #### Work Summary */
.container #main-content .works .works-list .work .summary {
    position: relative;
}

/* ##### Work Thumbnail */
.container #main-content .works .works-list .work .summary .thumbnail {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* ##### Work Body */
.container #main-content .works .works-list .work .summary .body {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    color: var(--theme-primary);
    background-color: rgba(0, 0, 0, 0.8);
    padding: 2rem 4rem;
    position: absolute;
    top: 0;
    left: 0;
}

@media screen and (max-width: 600px) {
    .container #main-content .works .works-list .work .summary .body {
        padding: 2rem;
    }
}

@media screen and (max-width: 600px) {
    .container #main-content .works .works-list .work .summary .body {
        padding: 1rem;
    }
}

.container #main-content .works .works-list .work:hover .summary .body {
    display: flex;
}

/* ###### Work Description */
.container #main-content .works .works-list .work .summary .body .description {
    display: grid;
    place-items: center;
    height: 100%;
    font-size: 2rem;
}

@media screen and (max-width: 1700px) {
    .container #main-content .works .works-list .work .summary .body .description {
        overflow-x: hidden;
        overflow-y: scroll;
        text-overflow: ellipsis;
        scrollbar-width: 0.25rem;
        scrollbar-color: var(--theme-inactive);
    }

    .container #main-content .works .works-list .work .summary .body .description::-webkit-scrollbar {
        width: 0.25rem;
    }

    .container #main-content .works .works-list .work .summary .body .description::-webkit-scrollbar-thumb {
        background-color: var(--theme-secondary);
    }

    .container #main-content .works .works-list .work .summary .body .description::-webkit-scrollbar-thumb:hover {
        background-color: var(--theme-inactive);
    }

    .container #main-content .works .works-list .work .summary .body .description::-webkit-scrollbar-track {
        background-color: var(--theme-secondary);
    }

    .container #main-content .works .works-list .work .summary .body .description::-webkit-scrollbar-track:hover {
        background-color: var(--theme-inactive);
    }
}

@media screen and (max-width: 800px) {
    .container #main-content .works .works-list .work .summary .body .description {
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 600px) {
    .container #main-content .works .works-list .work .summary .body .description {
        font-size: 1.25rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .works .works-list .work .summary .body .description {
        font-size: 1.125rem;
    }
}

/* ###### Work Services and Sectors */
.container #main-content .works .works-list .work .summary .body .services-and-sectors,
.container #main-content .works .works-list .work .summary .body .services-and-sectors .services,
.container #main-content .works .works-list .work .summary .body .services-and-sectors .sectors {
    display: flex;
    gap: 1rem;
}

/* ####### Work Services */
.container #main-content .works .works-list .work .summary .body .services-and-sectors .services .service,
.container #main-content .works .works-list .work .summary .body .services-and-sectors .sectors .sector {
    font-size: 0.825rem;
    padding: 0.25rem 1rem 0.5rem;
    border: 1px solid var(--theme-primary);
    border-radius: 1rem;
}

@media screen and (max-width: 600px) {
    .container #main-content .works .works-list .work .summary .body .services-and-sectors .services .service,
    .container #main-content .works .works-list .work .summary .body .services-and-sectors .sectors .sector {
        font-size: 0.75rem;
        padding: 0.125rem 0.5rem;
    }
}

/* ## Link to Projects Page */
.container #main-content .works .projects-link {
    color: var(--theme-secondary);
    background-color: var(--theme-primary);
    border-color: var(--theme-primary);
    margin: auto;
    margin-top: 2rem;
}

.container #main-content .works .projects-link:hover {
    color: var(--theme-primary);
    background-color: var(--theme-secondary);
}

/* # Partners */
.container #main-content .partners,
.container #main-content .team,
.container #main-content .interests {
    color: var(--theme-primary);
    background-color: var(--theme-secondary);
}

/* ## Partners List */
.container #main-content .partners .partners-list {
    justify-content: center;
}

.container #main-content .partners .partners-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

/* ### Partner */
.container #main-content .partners .partners-list .partner {
    padding: 2rem 2rem 4rem;
    min-width: 16%;
}

@media screen and (max-width: 480px) {
    .container #main-content .partners .partners-list .partner {
        padding: 1.5rem;
        max-width: 50%;
    }
}

.container #main-content .partners .partners-list .partner img {
    width: 100%;
    height: auto;
}

.container #main-content .partners .partners-list .partner img {
    display: block;
    margin: auto;
    max-width: 120px;
    filter: grayscale(1);
}

/* # FAQs */
.container #main-content .faqs {
    color: var(--theme-primary);
    background-color: var(--theme-secondary);
}

/* ## FAQs List */
/* ### FAQ */
.container #main-content .faqs .faqs-list .faq {
    max-width: 960px;
    cursor: default;
}

.container #main-content .faqs .faqs-list .faq:nth-child(n+2) {
    margin-top: 1.5rem;
}

/* #### FAQ Question */
.container #main-content .faqs .faqs-list .faq .question,
.container #main-content .faqs .faqs-list .faq .answer {
    margin-left: 2rem;
}

.container #main-content .faqs .faqs-list .faq .question {
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.2;
    position: relative;
}

@media screen and (max-width: 800px) {
    .container #main-content .faqs .faqs-list .faq .question,
    .container #main-content .faqs .faqs-list .faq .answer {
        margin-left: 1.5rem;
    }
    
    .container #main-content .faqs .faqs-list .faq .question {
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .faqs .faqs-list .faq .question {
        font-size: 1.25rem;
        font-weight: 500;
    }
}

.container #main-content .faqs .faqs-list .faq .question svg {
    width: 20px;
    position: absolute;
    top: 10px;
    left: -32px;
}

@media screen and (max-width: 800px) {
    .container #main-content .faqs .faqs-list .faq .question svg {
        width: 14px;
        top: 8px;
        left: -24px;
    }
}

@media screen and (max-width: 480px) {
    .container #main-content .faqs .faqs-list .faq .question svg {
        width: 12px;
        top: 7px;
        left: -24px;
    }
}

.container #main-content .faqs .faqs-list .faq-active .question svg {
    transform: rotate(45deg);
}

/* #### FAQ Answer */
.container #main-content .faqs .faqs-list .faq .answer {
    font-size: 1.5rem;
    width: 80%;
    margin-top: 0.5rem;
    display: none;
}

@media screen and (max-width: 800px) {
    .container #main-content .faqs .faqs-list .faq .answer {
        font-size: 1.125rem;
    }
}

.container #main-content .faqs .faqs-list .faq-active .answer {
    display: block;
}

/* ##### FAQ Answer Paragraph */
.container #main-content .faqs .faqs-list .faq .answer p,
.container #main-content .faqs .faqs-list .faq .answer ul li {
    line-height: 1.4;
}

.container #main-content .faqs .faqs-list .faq .answer p:nth-child(n+2),
.container #main-content .faqs .faqs-list .faq .answer ul li:nth-child(n+2),
.container #main-content .faqs .faqs-list .faq .answer p+ul li:nth-child(1) {
    margin-top: 0.75rem;
}

/* ##### FAQ Answer List */
.container #main-content .faqs .faqs-list .faq .answer ul {
    margin-bottom: 1rem;
}

.container #main-content .faqs .faqs-list .faq .answer p+ul {
    margin-top: 1.25rem;
}

.container #main-content .faqs .faqs-list .faq .answer ul li {
    margin-left: 1.5rem;
    list-style: disc;
}

/* ##### FAQ Answer Link */
.container #main-content .faqs .faqs-list .faq .answer a {
    color: var(--link-dark-bg);
    text-decoration: underline;
}

.container #main-content .faqs .faqs-list .faq .answer a:hover {
    color: var(--theme-tertiary);
    text-decoration: none;
}