/* =========================================
   INTERNAL PAGE HERO
========================================= */

.inner-hero {

    padding-top: 180px;
    padding-bottom: 100px;

}


.inner-title {

    max-width: 1000px;

    font-size: clamp(
        60px,
        9vw,
        140px
    );

    font-weight: 400;

    letter-spacing: -0.07em;

    line-height: 0.88;

}


.inner-title span {

    display: block;

    color: #999999;

}


.inner-intro {

    max-width: 500px;

    margin-top: 50px;

    color: #777777;

    font-size: 16px;

    line-height: 1.7;

}



/* =========================================
   ABOUT IMAGE
========================================= */

.about-portrait {

    padding-bottom: 120px;

}


.large-image {

    overflow: hidden;

}


.large-image img {

    aspect-ratio: 16 / 9;

    object-fit: cover;

}



/* =========================================
   PAGE SECTIONS
========================================= */

.page-section {

    padding-top: 120px;

    padding-bottom: 120px;

}


.about-page-grid {

    display: grid;

    grid-template-columns:
        1fr 2fr;

    gap: 60px;

}


.about-text {

    max-width: 800px;

}


.large-paragraph {

    font-size: clamp(
        30px,
        4vw,
        55px
    ) !important;

    line-height: 1.05 !important;

    letter-spacing: -0.04em;

    color: #111111 !important;

}


.about-text p + p {

    margin-top: 30px;

}


.about-text p {

    color: #777777;

    line-height: 1.7;

}



/* =========================================
   EXPERIENCE
========================================= */

.experience-section {

    background: #f5f5f5;

    padding: 120px 0;

}


.experience-list {

    border-top: 1px solid #d5d5d5;

}


.experience-item {

    display: grid;

    grid-template-columns:
        1fr 2fr 1fr;

    gap: 30px;

    padding: 25px 0;

    border-bottom: 1px solid #d5d5d5;

}


.experience-item > span {

    color: #999999;

    font-size: 12px;

}


.experience-item h3 {

    font-size: 20px;

    font-weight: 400;

}


.experience-item p {

    color: #777777;

    margin-top: 5px;

    font-size: 14px;

}



/* =========================================
   ABOUT SKILLS
========================================= */

.about-skills {

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

}


.about-skills span {

    padding: 12px 18px;

    border: 1px solid #dddddd;

    border-radius: 100px;

    font-size: 13px;

    transition:
        background 0.3s ease,
        color 0.3s ease;

}


.about-skills span:hover {

    background: #111111;

    color: #ffffff;

}



/* =========================================
   ABOUT CTA
========================================= */

.about-cta {

    padding: 150px 0;

    background: #f5f5f5;

}


.about-cta h2 {

    max-width: 900px;

    font-size: clamp(
        50px,
        8vw,
        120px
    );

    font-weight: 400;

    letter-spacing: -0.07em;

    line-height: 0.9;

}


.big-link {

    display: inline-block;

    margin-top: 45px;

    font-size: 18px;

    border-bottom: 1px solid #111111;

    padding-bottom: 7px;

}



/* =========================================
   WORK PAGE HERO
========================================= */

.work-page-hero {

    padding-top: 190px;

    padding-bottom: 100px;

}


.work-page-title {

    max-width: 1100px;

    font-size: clamp(
        55px,
        9vw,
        145px
    );

    font-weight: 400;

    line-height: 0.88;

    letter-spacing: -0.075em;

}


.work-page-title span {

    color: #999999;

}


.work-page-description {

    max-width: 350px;

    margin-left: auto;

    margin-top: 50px;

    color: #888888;

    font-size: 15px;

}



/* =========================================
   CASE STUDIES
========================================= */

.case-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;

}


.case-card {

    display: block;

}


.case-image {

    position: relative;

    overflow: hidden;

    background: #eeeeee;

}


.case-image img {

    aspect-ratio: 0.8 / 1;

    object-fit: cover;

    transition:
        transform 0.9s
        cubic-bezier(0.22, 1, 0.36, 1);

}


.case-card:hover
.case-image img {

    transform:
        scale(1.05);

}


.case-arrow {

    position: absolute;

    right: 20px;
    bottom: 20px;

    width: 45px;
    height: 45px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: #ffffff;

    border-radius: 50%;

    opacity: 0;

    transform:
        translateY(10px);

    transition:
        opacity 0.4s ease,
        transform 0.4s ease;

}


.case-card:hover .case-arrow {

    opacity: 1;

    transform:
        translateY(0);

}


.case-meta {

    display: flex;

    justify-content: space-between;

    padding: 15px 0;

    border-bottom: 1px solid #dddddd;

}


.case-meta span {

    font-size: 11px;

    color: #999999;

}


.case-meta h2 {

    margin-top: 5px;

    font-size: 20px;

    font-weight: 400;

}


.case-meta p {

    color: #999999;

    font-size: 11px;

}



/* =========================================
   EXPLORATIONS
========================================= */

.explorations {

    background: #f5f5f5;

}


.exploration-intro {

    max-width: 500px;

    color: #777777;

    line-height: 1.7;

    margin-bottom: 50px;

}


.exploration-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 12px;

}


.exploration-item {

    overflow: hidden;

    background: #dddddd;

}


.exploration-item img {

    width: 100%;

    aspect-ratio: 1 / 1;

    object-fit: cover;

    transition:
        transform 0.8s
        cubic-bezier(0.22, 1, 0.36, 1);

}


.exploration-item:hover img {

    transform:
        scale(1.05);

}



/* =========================================
   WORK CONTACT
========================================= */

.work-contact {

    padding: 150px 0;

}


.work-contact h2 {

    max-width: 900px;

    font-size: clamp(
        55px,
        8vw,
        120px
    );

    font-weight: 400;

    line-height: 0.9;

    letter-spacing: -0.07em;

}



/* =========================================
   CASE STUDY HERO
========================================= */

.case-study-hero {

    padding-top: 180px;

    padding-bottom: 100px;

}


.case-study-title {

    font-size: clamp(
        70px,
        12vw,
        190px
    );

    font-weight: 400;

    letter-spacing: -0.09em;

    line-height: 0.8;

}


.case-study-title span {

    color: #999999;

}


.case-study-intro {

    max-width: 500px;

    margin-top: 50px;

    color: #777777;

    line-height: 1.7;

}


.case-study-hero-image {

    margin-top: 80px;

    overflow: hidden;

}


.case-study-hero-image img {

    aspect-ratio: 16 / 9;

    object-fit: cover;

}



/* =========================================
   CASE INFORMATION
========================================= */

.case-info-grid {

    display: grid;

    grid-template-columns:
        1fr 2fr;

    gap: 60px;

}


.case-info-content {

    border-top: 1px solid #dddddd;

}


.info-row {

    display: grid;

    grid-template-columns:
        1fr 2fr;

    padding: 18px 0;

    border-bottom: 1px solid #dddddd;

}


.info-row span {

    color: #999999;

    font-size: 12px;

}


.info-row strong {

    font-weight: 400;

    font-size: 14px;

}



/* =========================================
   CASE OVERVIEW
========================================= */

.case-overview {

    padding: 140px 0;

    background: #f5f5f5;

}


.case-two-column {

    display: grid;

    grid-template-columns:
        1fr 2fr;

    gap: 60px;

}


.case-two-column h2 {

    max-width: 850px;

    font-size: clamp(
        40px,
        5vw,
        75px
    );

    font-weight: 400;

    letter-spacing: -0.06em;

    line-height: 0.95;

}


.case-two-column p {

    max-width: 650px;

    color: #777777;

    line-height: 1.7;

    margin-top: 35px;

}



/* =========================================
   DESIGN SECTION
========================================= */

.design-grid {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 60px;

    align-items: center;

}


.design-text h2 {

    font-size: 45px;

    font-weight: 400;

    letter-spacing: -0.04em;

}


.design-text p {

    max-width: 500px;

    margin-top: 20px;

    color: #777777;

    line-height: 1.7;

}


.design-text h3 {

    margin-top: 60px;

    font-size: 18px;

    font-weight: 400;

}


.design-preview {

    overflow: hidden;

}


.design-preview img {

    aspect-ratio: 4 / 3;

    object-fit: cover;

}



/* =========================================
   COLOUR PALETTE
========================================= */

.colour-palette {

    display: flex;

    gap: 25px;

    margin-top: 25px;

}


.colour-palette > div {

    display: flex;

    flex-direction: column;

    gap: 8px;

}


.colour {

    display: block;

    width: 55px;
    height: 55px;

    border-radius: 50%;

}


.colour-one {

    background: #651021;

}


.colour-two {

    background: #B7162C;

}


.colour-three {

    background: #230E12;

}


.colour-four {

    background: #F5F5F5;

    border: 1px solid #dddddd;

}


.colour-palette small {

    font-size: 10px;

    color: #F9F7F5;

}



/* =========================================
   RESPONSIVE DESIGN
========================================= */

.responsive-section {

    padding: 130px 0;

    background: #111111;

    color: #ffffff;

}


.responsive-section
.section-heading span {

    color: #888888;

}


.responsive-title {

    max-width: 1000px;

    font-size: clamp(
        50px,
        8vw,
        120px
    );

    font-weight: 400;

    line-height: 0.9;

    letter-spacing: -0.07em;

    margin-bottom: 80px;

}


.responsive-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;

}


.device-card img {

    width: 100%;

    aspect-ratio: 4 / 3;

    object-fit: cover;

    background: #222222;

}


.device-card h3 {

    font-size: 20px;

    font-weight: 400;

    margin-top: 20px;

}


.device-card p {

    color: #888888;

    font-size: 13px;

    margin-top: 10px;

    line-height: 1.6;

}



/* =========================================
   FEATURES
========================================= */

.features-list {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

}


.feature {

    display: grid;

    grid-template-columns:
        50px 1fr 1fr;

    gap: 20px;

    padding: 25px 0;

    border-top: 1px solid #dddddd;

}


.feature span {

    color: #999999;

    font-size: 11px;

}


.feature h3 {

    font-size: 20px;

    font-weight: 400;

}


.feature p {

    color: #777777;

    font-size: 13px;

    line-height: 1.6;

}



/* =========================================
   CASE GALLERY
========================================= */

.case-gallery {

    padding: 130px 0;

    background: #f5f5f5;

}


.case-gallery-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 15px;

}


.case-gallery-grid img {

    width: 100%;

    background: #dddddd;

}


.case-gallery-grid img:last-child {

    grid-column:
        1 / -1;

}



/* =========================================
   PROCESS
========================================= */

.process-list {

    border-top: 1px solid #dddddd;

}


.process-item {

    display: grid;

    grid-template-columns:
        60px 1fr 1fr;

    gap: 30px;

    padding: 30px 0;

    border-bottom: 1px solid #dddddd;

}


.process-item > span {

    color: #999999;

    font-size: 12px;

}


.process-item h3 {

    font-size: 22px;

    font-weight: 400;

}


.process-item p {

    color: #777777;

    line-height: 1.6;

    font-size: 14px;

}



/* =========================================
   NEXT PROJECT
========================================= */

.next-project {

    padding: 150px 0;

    background: #f5f5f5;

}


.next-project h2 {

    font-size: clamp(
        60px,
        9vw,
        140px
    );

    font-weight: 400;

    letter-spacing: -0.07em;

    line-height: 0.9;

}



/* =========================================
   ACTIVE NAV
========================================= */

.active-link {

    color: #111111 !important;

}


.active-link::after {

    width: 100% !important;

}



/* =========================================
   MOBILE
========================================= */

@media (max-width: 900px) {


    .inner-hero,
    .work-page-hero,
    .case-study-hero {

        padding-top: 130px;

    }


    .about-page-grid,
    .case-info-grid,
    .case-two-column {

        grid-template-columns: 1fr;

    }


    .case-grid {

        grid-template-columns:
            1fr 1fr;

    }


    .exploration-grid {

        grid-template-columns:
            1fr 1fr;

    }


    .responsive-grid {

        grid-template-columns:
            1fr;

    }


    .design-grid {

        grid-template-columns:
            1fr;

    }


    .features-list {

        grid-template-columns:
            1fr;

    }


    .process-item {

        grid-template-columns:
            50px 1fr;

    }


    .process-item p {

        grid-column:
            2;

    }

}



@media (max-width: 600px) {


    .page-section {

        padding-top: 80px;

        padding-bottom: 80px;

    }


    .inner-title {

        font-size: 58px;

    }


    .work-page-title {

        font-size: 60px;

    }


    .case-study-title {

        font-size: 75px;

    }


    .case-grid {

        grid-template-columns:
            1fr;

    }


    .exploration-grid {

        grid-template-columns:
            1fr;

    }


    .case-gallery-grid {

        grid-template-columns:
            1fr;

    }


    .case-gallery-grid img:last-child {

        grid-column: auto;

    }


    .experience-item {

        grid-template-columns:
            1fr;

        gap: 10px;

    }


    .info-row {

        grid-template-columns:
            1fr;

        gap: 7px;

    }


    .feature {

        grid-template-columns:
            40px 1fr;

    }


    .feature p {

        grid-column:
            2;

    }


    .colour-palette {

        flex-wrap: wrap;

    }

}
/* =========================================
   CONTACT PAGE
========================================= */

.contact-hero {

    padding-top: 190px;

    padding-bottom: 100px;

}


.contact-title {

    max-width: 1100px;

    font-size: clamp(
        70px,
        12vw,
        180px
    );

    font-weight: 400;

    letter-spacing: -0.09em;

    line-height: 0.82;

}


.contact-title span {

    display: block;

    color: #999999;

}


.contact-intro {

    max-width: 500px;

    margin-top: 55px;

    color: #777777;

    font-size: 16px;

    line-height: 1.7;

}



/* =========================================
   CONTACT INFORMATION
========================================= */

.contact-information {

    padding: 80px 0 140px;

}


.contact-grid {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    border-top: 1px solid #dddddd;

}


.contact-block {

    min-height: 230px;

    padding: 30px;

    border-bottom: 1px solid #dddddd;

}


.contact-block:nth-child(
    odd
) {

    border-right: 1px solid #dddddd;

}


.contact-label {

    display: block;

    margin-bottom: 35px;

    color: #999999;

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 0.08em;

}


.contact-link {

    display: inline-block;

    font-size: clamp(
        20px,
        2.5vw,
        32px
    );

    font-weight: 400;

    border-bottom: 1px solid #111111;

    padding-bottom: 5px;

}


.contact-value {

    max-width: 350px;

    font-size: 20px;

    line-height: 1.4;

}


.contact-socials {

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 12px;

}


.contact-socials a {

    font-size: 20px;

    transition:
        opacity 0.3s ease;

}


.contact-socials a:hover {

    opacity: 0.45;

}



/* =========================================
   BIG EMAIL
========================================= */

.contact-cta {

    padding: 150px 0;

    background: #f5f5f5;

}


.contact-email {

    display: inline-block;

    margin-top: 40px;

    font-size: clamp(
        35px,
        6vw,
        90px
    );

    line-height: 0.95;

    letter-spacing: -0.06em;

    border-bottom: 2px solid #111111;

    transition:
        opacity 0.3s ease;

}


.contact-email:hover {

    opacity: 0.5;

}



/* =========================================
   CONTACT FORM
========================================= */

.contact-form-section {

    padding: 150px 0;

}


.contact-form-grid {

    display: grid;

    grid-template-columns:
        1fr 1.5fr;

    gap: 100px;

}


.contact-form-heading h2 {

    max-width: 550px;

    margin-top: 25px;

    font-size: clamp(
        45px,
        6vw,
        90px
    );

    font-weight: 400;

    letter-spacing: -0.07em;

    line-height: 0.9;

}


.contact-form {

    border-top: 1px solid #dddddd;

}


.form-field {

    padding: 25px 0;

    border-bottom: 1px solid #dddddd;

}


.form-field label {

    display: block;

    margin-bottom: 12px;

    color: #888888;

    font-size: 12px;

}


.form-field input,
.form-field textarea,
.form-field select {

    width: 100%;

    border: none;

    outline: none;

    background: transparent;

    font-family: inherit;

    font-size: 18px;

    color: #111111;

}


.form-field input::placeholder,
.form-field textarea::placeholder {

    color: #aaaaaa;

}


.form-field textarea {

    resize: vertical;

}


.form-field select {

    cursor: pointer;

}


.form-submit {

    margin-top: 30px;

    padding: 18px 28px;

    border: 1px solid #111111;

    background: #111111;

    color: #ffffff;

    font-family: inherit;

    font-size: 14px;

    cursor: pointer;

    transition:
        background 0.3s ease,
        color 0.3s ease;

}


.form-submit:hover {

    background: transparent;

    color: #111111;

}


.form-note {
    margin-top: 20px;
    font-size: 14px;
    color: #777;
    line-height: 1.5;
}



/* =========================================
   CONTACT MOBILE
========================================= */

@media (max-width: 700px) {


    .contact-hero {

        padding-top: 130px;

        padding-bottom: 70px;

    }


    .contact-title {

        font-size: 70px;

    }


    .contact-grid {

        grid-template-columns: 1fr;

    }


    .contact-block {

        min-height: auto;

        padding: 30px 0;

    }


    .contact-block:nth-child(
        odd
    ) {

        border-right: none;

    }


    .contact-form-grid {

        grid-template-columns: 1fr;

        gap: 70px;

    }


    .contact-cta {

        padding: 100px 0;

    }


    .contact-email {

        font-size: 35px;

        word-break: break-word;

    }

}

