/*==========================
  GOOGLE FONT
==========================*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Bebas+Neue&display=swap');


/*==========================
  VARIABLES
==========================*/

:root{

    --primary:#D31518;
    --primary-light:#E63A3D;

    --bg:#050505;
    --surface:#101010;
    --surface-light:#171717;

    --text:#DCDEDF;
    --text-light:#B8BABC;

    --border:rgba(255,255,255,.08);

    --radius:16px;

    --transition:.35s ease;

    --container:1600px;

}


/*==========================
  RESET
==========================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    background:var(--bg);

    color:var(--text);

    font-family:'Inter',sans-serif;

    overflow-x:hidden;

}

img{

    display:block;

    width:100%;

}

a{

    color:inherit;

    text-decoration:none;

}

ul{

    list-style:none;

}

.container{

    width:min(95%,var(--container));

    margin:0 auto;

}

.navbar{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:999;
    padding:22px 0;
    transition:.4s;

}

.nav-container{

    display:flex;
    justify-content:space-between;
    align-items:center;

}

.logo{

    font-family:'Bebas Neue';
    font-size:34px;
    letter-spacing:2px;

}

.logo span{

    color:var(--primary);

}

.nav-links{

    display:flex;
    gap:40px;

}

.nav-links a{

    color:#fff;
    position:relative;
    transition:.3s;

}

.nav-links a::after{

    content:"";
    position:absolute;
    left:0;
    bottom:-8px;
    width:0;
    height:2px;
    background:var(--primary);
    transition:.3s;

}

.nav-links a:hover{
    font-weight:500;

}

.nav-links a:hover::after{

    width:100%;

}

.navbar.active{

    background:rgba(5,5,5,.78);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.06);
    box-shadow:0 8px 30px rgba(0,0,0,.18);

}

.call-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:12px 24px;
    border-radius:999px;
    background:var(--primary);
    color:#fff;
    font-size:.75rem;
    font-weight:700;
    letter-spacing:1.2px;
    text-transform:uppercase;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
    box-shadow:0 15px 35px rgba(211,21,24,.22);
}

.call-btn:hover{
    transform:translateY(-2px);
    background:var(--primary-light);
}

.menu-btn{
    display:none;
}


/*========================================================
    PROJECTS PAGE
========================================================*/


/*========================================================
    PROJECTS HERO
========================================================*/

.projects-hero{

    position:relative;

    padding:155px 0 0;

    background:var(--bg);

    overflow:hidden;

}


/*========================================================
    HERO BACKGROUND TEXT
========================================================*/

.projects-hero-bg-text{

    position:absolute;

    left:50%;
    top:48%;

    transform:translate(-50%,-50%);

    z-index:0;

    font-size:clamp(
        170px,
        20vw,
        320px
    );

    font-weight:900;

    line-height:.8;

    letter-spacing:-.09em;

    color:rgba(255,255,255,.018);

    white-space:nowrap;

    pointer-events:none;

    user-select:none;

}


/*========================================================
    PAGE HEADING
========================================================*/

.projects-page-heading{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:1.15fr .85fr;

    gap:90px;

    align-items:end;

    padding-bottom:82px;

}


/*========================================================
    HERO EYEBROW
========================================================*/

.projects-page-eyebrow{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-bottom:25px;

    padding:9px 17px;

    border:1px solid rgba(211,21,24,.38);

    border-radius:50px;

    background:rgba(211,21,24,.065);

    color:var(--primary-light);

    font-size:.72rem;

    font-weight:700;

    letter-spacing:2.5px;

    text-transform:uppercase;

    box-shadow:
        0 8px 30px rgba(211,21,24,.035);

}


.projects-page-eyebrow::before{

    content:"";

    width:7px;
    height:7px;

    flex-shrink:0;

    border-radius:50%;

    background:var(--primary);

    box-shadow:
        0 0 0 4px rgba(211,21,24,.08),
        0 0 18px rgba(211,21,24,.5);

}


/*========================================================
    HERO TITLE
========================================================*/

.projects-page-heading h1{

    max-width:850px;

    margin:0;

    color:#fff;

    font-size:clamp(
        48px,
        5.4vw,
        78px
    );

    line-height:.98;

    letter-spacing:-2.8px;

    font-weight:650;

}


.projects-page-heading h1 span{

    color:var(--primary);

}


/*========================================================
    HERO COPY
========================================================*/

.projects-page-heading-copy{

    padding-bottom:7px;

}


.projects-page-heading-copy::before{

    content:"";

    display:block;

    width:48px;
    height:2px;

    margin-bottom:22px;

    background:var(--primary);

    box-shadow:
        0 0 15px rgba(211,21,24,.25);

}


.projects-page-heading-copy p{

    max-width:510px;

    margin:0;

    color:#929292;

    font-size:.98rem;

    line-height:1.9;

}


/*========================================================
    PROJECT SHOWCASE
========================================================*/

.project-showcase{

    position:relative;

    padding:78px 0;

    background:var(--bg);

    overflow:hidden;

}


/*========================================================
    BACKGROUND PROJECT NUMBER
========================================================*/

.project-bg-number{

    position:absolute;

    right:-15px;
    top:50%;

    transform:translateY(-50%);

    z-index:0;

    font-size:clamp(
        230px,
        25vw,
        430px
    );

    font-weight:800;

    line-height:.75;

    letter-spacing:-.09em;

    color:rgba(255,255,255,.016);

    pointer-events:none;

    user-select:none;

}


/*========================================================
    PROJECT LAYOUT

    IMAGE  ≈ 42%
    CONTENT ≈ 58%

    Image is explicitly constrained further below.
========================================================*/

.project-layout{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:
        minmax(0,42%)
        minmax(0,58%);

    gap:64px;

    align-items:center;

}


/*========================================================
    PROJECT MEDIA

    IMPORTANT:
    Same maximum width whether image is
    LEFT or RIGHT.
========================================================*/

.project-media{

    position:relative;

    width:100%;

    max-width:650px;

    min-width:0;

}


/*========================================================
    PROJECT CONTENT

    Larger available visual area
========================================================*/

.project-content{

    width:100%;

    max-width:760px;

    min-width:0;

    padding:4px 0;

}


/*========================================================
    REVERSE PROJECT

    Only changes visual order.
    Width remains exactly the same.
========================================================*/

.project-layout-reverse .project-media{

    order:2;

    justify-self:end;

}


.project-layout-reverse .project-content{

    order:1;

    justify-self:start;

}


/*========================================================
    PROJECT IMAGE WRAPPER
========================================================*/

.project-image-wrapper{

    position:relative;

    width:100%;

    aspect-ratio:1.32 / 1;

    overflow:hidden;

    background:var(--surface);

    border:1px solid var(--border);

    border-radius:var(--radius-lg);

    box-shadow:var(--shadow-lg);

    isolation:isolate;

}


/*========================================================
    PROJECT IMAGE
========================================================*/

.project-main-image{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    transform:scale(1);

    transition:
        transform .8s cubic-bezier(.22,.61,.36,1);

}


.project-image-wrapper:hover
.project-main-image{

    transform:scale(1.025);

}


/*========================================================
    IMAGE NAVIGATION
========================================================*/

.project-image-nav{

    position:absolute;

    left:0;
    right:0;
    bottom:0;

    z-index:5;

    display:grid;

    grid-template-columns:
        1fr
        auto
        1fr;

    align-items:center;

    min-height:66px;

    padding:0 19px;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.80),
            rgba(0,0,0,.40),
            transparent
        );

}


/*========================================================
    NAV BUTTON
========================================================*/

.project-nav-btn{

    display:flex;

    align-items:center;

    gap:9px;

    padding:8px 0;

    border:0;

    outline:none;

    background:transparent;

    color:rgba(255,255,255,.75);

    font-family:inherit;

    cursor:pointer;

    transition:
        color var(--transition),
        transform var(--transition);

}


.project-nav-btn:first-child{

    justify-self:start;

}


.project-nav-btn:last-child{

    justify-self:end;

}


.project-nav-btn:hover{

    color:#fff;

}


.project-nav-btn:first-child:hover{

    transform:translateX(-3px);

}


.project-nav-btn:last-child:hover{

    transform:translateX(3px);

}


/*========================================================
    NAV ARROW
========================================================*/

.nav-arrow{

    font-size:20px;

    line-height:1;

}


/*========================================================
    NAV LABEL
========================================================*/

.nav-label{

    font-size:8px;

    font-weight:700;

    letter-spacing:2px;

}


/*========================================================
    IMAGE COUNTER
========================================================*/

.project-image-counter{

    display:flex;

    align-items:center;

    gap:7px;

    font-size:9px;

    font-weight:700;

    letter-spacing:1.5px;

    color:rgba(255,255,255,.6);

}


.current-image{

    color:var(--primary-light);

}


.counter-divider{

    color:rgba(255,255,255,.3);

}


/*========================================================
    EXPAND BUTTON
========================================================*/

.project-expand{

    position:absolute;

    top:16px;
    right:16px;

    z-index:6;

    width:40px;
    height:40px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:1px solid rgba(255,255,255,.15);

    border-radius:50%;

    background:rgba(0,0,0,.25);

    backdrop-filter:blur(12px);

    color:#fff;

    font-size:17px;

    line-height:1;

    cursor:pointer;

    transition:
        background var(--transition),
        border-color var(--transition),
        transform var(--transition);

}


.project-expand:hover{

    background:var(--primary);

    border-color:var(--primary);

    transform:rotate(8deg);

}


/*========================================================
    GALLERY OVERLAY
========================================================*/

.project-gallery-overlay{

    position:fixed;
    inset:0;
    z-index:2000;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:32px;

    background:rgba(5,5,5,.82);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transition:opacity .25s ease, visibility .25s ease;

}

.project-gallery-overlay.is-open{

    opacity:1;
    visibility:visible;
    pointer-events:auto;

}

.project-gallery-panel{

    position:relative;

    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:18px;

    width:min(92vw,1180px);
    padding:22px 18px 18px;

    border:1px solid rgba(255,255,255,.1);
    border-radius:28px;

    background:rgba(16,16,16,.9);
    box-shadow:0 30px 80px rgba(0,0,0,.52);

}

.project-gallery-close{

    position:absolute;
    top:18px;
    right:18px;

    width:38px;
    height:38px;

    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;

    background:rgba(255,255,255,.02);

    color:#fff;
    font-size:26px;
    line-height:1;

    cursor:pointer;

    transition:background .25s ease, border-color .25s ease, transform .25s ease;

}

.project-gallery-close:hover{

    background:var(--primary);
    border-color:var(--primary);
    transform:rotate(90deg);

}

.project-gallery-nav{

    width:54px;
    height:54px;

    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;

    background:rgba(255,255,255,.02);

    color:#fff;
    font-size:22px;

    cursor:pointer;

    transition:background .25s ease, border-color .25s ease, transform .25s ease;

}

.project-gallery-nav:hover{

    background:var(--primary);
    border-color:var(--primary);
    transform:translateY(-1px);

}

.project-gallery-media{

    position:relative;

    width:100%;
    min-width:0;

    overflow:hidden;
    border-radius:20px;
    background:var(--surface);
}

.project-gallery-image{

    display:block;
    width:100%;
    max-height:72vh;
    object-fit:cover;

}

.project-gallery-counter{

    position:absolute;
    left:18px;
    bottom:18px;

    display:flex;
    align-items:center;
    gap:7px;

    padding:8px 12px;

    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;

    background:rgba(0,0,0,.42);
    backdrop-filter:blur(8px);

    color:#fff;
    font-size:10px;
    font-weight:700;
    letter-spacing:1.5px;

}

.project-gallery-current{

    color:var(--primary-light);

}

.project-gallery-divider{

    color:rgba(255,255,255,.4);

}


/*========================================================
    PROJECT INDEX
========================================================*/

.project-index{

    display:flex;

    align-items:center;

    gap:7px;

    margin-bottom:17px;

    font-size:.66rem;

    font-weight:700;

    letter-spacing:2.2px;

    color:var(--text-muted);

}


.project-index span{

    color:var(--primary);

}


/*========================================================
    PROJECT HEADING
========================================================*/

.project-heading{

    margin-bottom:23px;

}


.project-location{

    display:block;

    margin-bottom:8px;

    color:var(--primary-light);

    font-size:.66rem;

    font-weight:700;

    letter-spacing:2.2px;

    text-transform:uppercase;

}


.project-heading h2{

    margin:0;

    color:#fff;

    font-size:clamp(
        43px,
        4.2vw,
        68px
    );

    font-weight:650;

    line-height:.94;

    letter-spacing:-2.5px;

    text-transform:uppercase;

}


/*========================================================
    PROJECT STORY
========================================================*/

.project-story{

    max-width:650px;

    margin-bottom:23px;

    padding-left:17px;

    border-left:1px solid rgba(211,21,24,.35);

}


/*========================================================
    STORY LABEL
========================================================*/

.story-label{

    display:block;

    margin-bottom:7px;

    color:var(--primary-light);

    font-size:.62rem;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

}


/*========================================================
    STORY HEADING
========================================================*/

.project-story h3{

    margin:0 0 10px;

    color:var(--text);

    font-size:1.2rem;

    font-weight:500;

    line-height:1.35;

    letter-spacing:-.2px;

}


/*========================================================
    STORY PARAGRAPH
========================================================*/

.project-story p{

    max-width:630px;

    margin:0 0 8px;

    color:#929292;

    font-size:.84rem;

    line-height:1.78;

}


.project-story p:last-child{

    margin-bottom:0;

}


/*========================================================
    PROJECT DETAILS
========================================================*/

.project-details{

    display:grid;

    grid-template-columns:1fr 1fr;

    margin-bottom:20px;

    border-top:1px solid var(--border);

    border-bottom:1px solid var(--border);

}


/*========================================================
    DETAIL ITEM
========================================================*/

.detail-item{

    min-height:61px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    gap:5px;

    padding:10px 14px;

    border-right:1px solid var(--border);

    border-bottom:1px solid var(--border);

}


.detail-item:nth-child(even){

    border-right:0;

}


.detail-item:nth-last-child(-n+2){

    border-bottom:0;

}


/*========================================================
    DETAIL LABEL
========================================================*/

.detail-item span{

    color:var(--text-muted);

    font-size:.58rem;

    font-weight:700;

    letter-spacing:1.7px;

    text-transform:uppercase;

}


/*========================================================
    DETAIL VALUE
========================================================*/

.detail-item strong{

    color:var(--text-brand);

    font-size:.78rem;

    font-weight:500;

    line-height:1.35;

}


/*========================================================
    PROJECT HIGHLIGHTS
========================================================*/

.project-highlights{

    display:flex;

    align-items:flex-start;

    gap:15px;

}


/*========================================================
    HIGHLIGHT LABEL
========================================================*/

.highlight-label{

    flex-shrink:0;

    padding-top:5px;

    color:var(--text-muted);

    font-size:.55rem;

    font-weight:700;

    letter-spacing:1.7px;

    text-transform:uppercase;

}


/*========================================================
    HIGHLIGHT LIST
========================================================*/

.highlight-list{

    display:flex;

    flex-wrap:wrap;

    gap:5px;

}


.highlight-list span{

    padding:5px 9px;

    border:1px solid var(--border);

    border-radius:var(--radius-full);

    color:var(--text-light);

    font-size:.58rem;

    line-height:1;

    transition:
        color var(--transition),
        background var(--transition),
        border-color var(--transition);

}


.highlight-list span:hover{

    color:var(--text);

    border-color:var(--border-primary);

    background:var(--primary-soft);

}


/*========================================================
    PROJECT SEPARATOR
========================================================*/

.project-showcase + .project-showcase{

    border-top:1px solid rgba(255,255,255,.025);

}


/*========================================================
    LARGE TABLET / SMALL LAPTOP
========================================================*/

@media (max-width:1100px){

    .projects-hero{

        padding-top:135px;

    }


    .projects-page-heading{

        grid-template-columns:1.1fr .9fr;

        gap:55px;

        padding-bottom:70px;

    }


    .projects-page-heading h1{

        font-size:clamp(
            46px,
            5.8vw,
            68px
        );

        letter-spacing:-2.3px;

    }


    .projects-page-heading-copy p{

        font-size:.92rem;

        line-height:1.8;

    }


    /*----------------------------------------------
        PROJECTS
    ----------------------------------------------*/

    .project-showcase{

        padding:68px 0;

    }


    .project-layout{

        grid-template-columns:
            minmax(0,42%)
            minmax(0,58%);

        gap:48px;

    }


    .project-media{

        max-width:470px;

    }


    .project-image-wrapper{

        aspect-ratio:1.28 / 1;

    }


    .project-heading h2{

        font-size:clamp(
            40px,
            4.8vw,
            60px
        );

        letter-spacing:-2px;

    }


    .project-story h3{

        font-size:1.1rem;

    }


    .project-story p{

        font-size:.79rem;

    }

}


/*========================================================
    TABLET
========================================================*/

@media (max-width:850px){

    .projects-page-heading{

        grid-template-columns:1fr;

        gap:30px;

        align-items:start;

        padding-bottom:62px;

    }


    .projects-page-heading-copy{

        padding-bottom:0;

    }


    .projects-page-heading-copy p{

        max-width:650px;

    }


    /*----------------------------------------------
        PROJECT LAYOUT
    ----------------------------------------------*/

    .project-showcase{

        padding:62px 0;

    }


    .project-layout{

        grid-template-columns:1fr;

        gap:30px;

        align-items:start;

    }


    /*
        Reset image restriction when
        layout becomes single column.
    */

    .project-media{

        width:100%;

        max-width:none;

    }


    .project-content{

        width:100%;

        max-width:760px;

    }


    .project-layout-reverse .project-media{

        order:1;

        justify-self:stretch;

    }


    .project-layout-reverse .project-content{

        order:2;

        justify-self:stretch;

    }


    .project-image-wrapper{

        aspect-ratio:16 / 10;

    }


    .project-heading h2{

        font-size:clamp(
            44px,
            7vw,
            62px
        );

    }


    .project-story{

        max-width:720px;

    }

}


/*========================================================
    MOBILE
========================================================*/

@media (max-width:600px){

    /*----------------------------------------------
        HERO
    ----------------------------------------------*/

    .projects-hero{

        padding-top:110px;

    }


    .projects-hero-bg-text{

        top:35%;

        font-size:34vw;

    }


    .projects-page-heading{

        gap:24px;

        padding-bottom:52px;

    }


    .projects-page-eyebrow{

        gap:9px;

        margin-bottom:21px;

        padding:8px 14px;

        font-size:.63rem;

        letter-spacing:2px;

    }


    .projects-page-eyebrow::before{

        width:6px;
        height:6px;

    }


    .projects-page-heading h1{

        font-size:clamp(
            43px,
            12vw,
            62px
        );

        line-height:.96;

        letter-spacing:-2px;

    }


    .projects-page-heading-copy::before{

        width:40px;

        height:2px;

        margin-bottom:17px;

    }


    .projects-page-heading-copy p{

        max-width:100%;

        font-size:.86rem;

        line-height:1.8;

    }


    /*----------------------------------------------
        PROJECT SECTION
    ----------------------------------------------*/

    .project-showcase{

        padding:52px 0;

    }


    /*----------------------------------------------
        BACKGROUND NUMBER
    ----------------------------------------------*/

    .project-bg-number{

        top:5%;

        right:-5px;

        transform:none;

        font-size:55vw;

    }


    /*----------------------------------------------
        IMAGE
    ----------------------------------------------*/

    .project-image-wrapper{

        aspect-ratio:4 / 3;

        border-radius:var(--radius);

    }


    .project-image-nav{

        min-height:59px;

        padding:0 14px;

    }


    .nav-label{

        display:none;

    }


    .nav-arrow{

        font-size:18px;

    }


    .project-image-counter{

        font-size:8px;

    }


    .project-expand{

        top:12px;

        right:12px;

        width:36px;

        height:36px;

        font-size:15px;

    }


    /*----------------------------------------------
        PROJECT INDEX
    ----------------------------------------------*/

    .project-index{

        margin-bottom:16px;

        font-size:.58rem;

        letter-spacing:1.8px;

    }


    /*----------------------------------------------
        PROJECT HEADING
    ----------------------------------------------*/

    .project-heading{

        margin-bottom:21px;

    }


    .project-location{

        margin-bottom:8px;

        font-size:.58rem;

        letter-spacing:1.8px;

    }


    .project-heading h2{

        font-size:clamp(
            40px,
            11.8vw,
            56px
        );

        line-height:.95;

        letter-spacing:-1.8px;

    }


    /*----------------------------------------------
        STORY
    ----------------------------------------------*/

    .project-story{

        margin-bottom:20px;

        padding-left:14px;

    }


    .story-label{

        font-size:.56rem;

        letter-spacing:1.7px;

    }


    .project-story h3{

        margin-bottom:8px;

        font-size:1rem;

    }


    .project-story p{

        font-size:.73rem;

        line-height:1.7;

    }


    /*----------------------------------------------
        DETAILS
    ----------------------------------------------*/

    .project-details{

        grid-template-columns:1fr;

        margin-bottom:18px;

    }


    .detail-item{

        min-height:52px;

        padding:8px 11px;

        border-right:0;

        border-bottom:1px solid var(--border);

    }


    .detail-item:nth-last-child(-n+2){

        border-bottom:1px solid var(--border);

    }


    .detail-item:last-child{

        border-bottom:0;

    }


    /*----------------------------------------------
        HIGHLIGHTS
    ----------------------------------------------*/

    .project-highlights{

        flex-direction:column;

        gap:9px;

    }


    .highlight-label{

        padding-top:0;

    }


    .highlight-list span{

        padding:5px 8px;

        font-size:.55rem;

    }

}


/*========================================================
    VERY SMALL MOBILE
========================================================*/

@media (max-width:380px){

    .project-showcase{

        padding:47px 0;

    }


    .project-heading h2{

        font-size:40px;

    }


    .project-image-wrapper{

        aspect-ratio:1 / .88;

    }

}


/*========================================================
    REDUCED MOTION
========================================================*/

@media (prefers-reduced-motion:reduce){

    .project-main-image,
    .project-nav-btn,
    .project-expand,
    .highlight-list span{

        transition:none;

    }

}






/*=====================================================*
* CTA / CONTACT SECTION
*======================================================*/

.cta-contact {

    position:relative;

    padding:160px 8%;

    background:#050505;

    overflow:hidden;

    z-index:1;

}


/*------------------------------------*
* Background Glow
*------------------------------------*/

.cta-contact::before {

    content:"";

    position:absolute;

    width:850px;
    height:850px;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    background:radial-gradient(
        circle,
        rgba(255,255,255,.06),
        transparent 70%
    );

    pointer-events:none;

    z-index:-1;

}


/*------------------------------------*
* Huge Background Text
*------------------------------------*/

.cta-bg-text {

    position:absolute;

    top:50%;
    left:50%;

    transform:translate(-50%,-50%);

    font-size:clamp(120px,18vw,260px);

    font-weight:800;

    letter-spacing:18px;

    color:#fff;

    opacity:.025;

    white-space:nowrap;

    user-select:none;

    pointer-events:none;

    z-index:-1;

}


/*=====================================================*
* LAYOUT
*======================================================*/

.cta-wrapper {

    display:grid;

    grid-template-columns:1.2fr .8fr;

    gap:70px;

    align-items:center;

}


/*=====================================================*
* LEFT CONTENT
*======================================================*/

.cta-content {

    position:relative;

}


.cta-content .section-tag {

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:10px 18px;

    border:1px solid rgba(211,21,24,.18);

    border-radius:50px;

    background:rgba(211,21,24,.035);

    backdrop-filter:blur(14px);

    color:var(--primary-light);

    font-size:.82rem;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:28px;

}


.cta-content h2 {

    font-size:clamp(42px,5vw,68px);

    line-height:1.08;

    font-weight:700;

    color:#fff;

    margin-bottom:28px;

    max-width:700px;

}


.cta-content p {

    color:#9f9f9f;

    font-size:1.08rem;

    line-height:1.9;

    max-width:640px;

    margin-bottom:45px;

}


/*=====================================================*
* LEFT BUTTONS
*======================================================*/

.cta-buttons{
    display:flex;

    gap:20px;

    flex-wrap:wrap;
}


/*------------------------------------*
* Primary Button
*------------------------------------*/

.primary-btn{
    display:inline-flex;

    align-items:center;
    justify-content:center;

    padding:18px 38px;

    border-radius:60px;

    text-decoration:none;

    color: white;

    background:var(--primary);

    font-weight:700;

    transition:.45s ease;

    box-shadow:
        0 20px 45px rgba(211,21,24,.10);
}


.primary-btn:hover{
    transform:translateY(-6px);

    box-shadow:
        0 15px 35px rgba(211,21,24,.35);
}


/*------------------------------------*
* Secondary Button
*------------------------------------*/

.secondary-btn{
    display:inline-flex;

    align-items:center;
    justify-content:center;

    padding:18px 36px;

    border-radius:60px;

    border:1px solid rgba(255,255,255,.10);

    text-decoration:none;

    color:var(--text);

    background:rgba(255,255,255,.03);

    backdrop-filter:blur(18px);

    transition:.45s ease;
}


.secondary-btn:hover{
    transform:translateY(-6px);

    border-color:rgba(255,255,255,.25);

    background:rgba(255,255,255,.06);
}


/*=====================================================*
* RIGHT — CONTACT / FORM CARD
*======================================================*/

.contact-card{
    position:relative;

    padding:42px;

    background:rgba(255,255,255,.03);

    border:1px solid rgba(255,255,255,.08);

    border-radius:30px;

    backdrop-filter:blur(22px);

    box-shadow:
        0 35px 80px rgba(0,0,0,.45);

    transition:.5s ease;
}


.contact-card:hover{
    transform:translateY(-8px);

    border-color:rgba(255,255,255,.16);

    box-shadow:
        0 50px 100px rgba(0,0,0,.55);
}


/*------------------------------------*
* Subtle Card Shine
*------------------------------------*/

.contact-card::before{
    content:"";

    position:absolute;

    inset:0;

    border-radius:30px;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.06),
            transparent 45%,
            transparent
        );

    pointer-events:none;

    z-index:0;
}


/*=====================================================*
* FORM
*======================================================*/

.project-enquiry-form{
    position:relative;

    z-index:1;

    width:100%;
}


/*=====================================================*
* FORM HEADER
*======================================================*/

.form-header{
    margin-bottom:28px;
}


.form-header .form-label{
    display:inline-block;

    margin-bottom:14px;

    color:#9f9f9f;

    font-size:.72rem;

    font-weight:600;

    letter-spacing:2px;

    text-transform:uppercase;
}


.form-header h3{
    color:var(--text);

    font-size:clamp(28px,3vw,38px);

    line-height:1.12;

    font-weight:650;

    margin-bottom:14px;
}


.form-header p{
    color:#858585;

    font-size:.9rem;

    line-height:1.7;

    max-width:420px;
}


/*=====================================================*
* FORM FIELDS
*======================================================*/

.form-field{
    position:relative;

    width:100%;

    margin-bottom:13px;
}


.form-field input,
.form-field textarea{
    width:100%;

    display:block;

    border:1px solid rgba(255,255,255,.08);

    border-radius:13px;

    background:rgba(255,255,255,.035);

    color:var(--text);

    font-family:inherit;

    font-size:.92rem;

    outline:none;

    transition:
        border-color .35s ease,
        background .35s ease,
        box-shadow .35s ease;
}


/*------------------------------------*
* Input
*------------------------------------*/

.form-field input{
    height:54px;

    padding:0 17px;
}


/*------------------------------------*
* Textarea
*------------------------------------*/

.form-field textarea{
    min-height:105px;

    padding:16px 17px;

    resize:vertical;

    line-height:1.6;
}


/*------------------------------------*
* Placeholder
*------------------------------------*/

.form-field input::placeholder,
.form-field textarea::placeholder{
    color:#858585;

    opacity:1;

    transition:opacity .25s ease;
}


/*------------------------------------*
* Hide Internal Text Once User Types
*------------------------------------*/

.form-field input:not(:placeholder-shown)::placeholder,
.form-field textarea:not(:placeholder-shown)::placeholder{
    opacity:0;
}


/*------------------------------------*
* Focus
*------------------------------------*/

.form-field input:focus,
.form-field textarea:focus{
    border-color:rgba(211,21,24,.55);

    background:rgba(255,255,255,.055);

    box-shadow:
        0 0 0 3px rgba(211,21,24,.08);
}


/*------------------------------------*
* Name + Mobile Row
*------------------------------------*/

.form-row{
    display:grid;

    grid-template-columns:1fr 1fr;

    gap:13px;
}


.form-row .form-field{
    margin-bottom:13px;
}


/*=====================================================*
* PRIVACY / TERMS
*======================================================*/

.form-consent{
    margin-top:17px;

    margin-bottom:22px;
}


.consent-label{
    display:flex;

    align-items:flex-start;

    gap:11px;

    cursor:pointer;

    user-select:none;
}


/*------------------------------------*
* Hide Native Checkbox
*------------------------------------*/

.consent-label input{
    position:absolute;

    opacity:0;

    width:0;
    height:0;

    pointer-events:none;
}


/*------------------------------------*
* Custom Checkbox
*------------------------------------*/

.custom-checkbox{
    position:relative;

    flex:0 0 17px;

    width:17px;
    height:17px;

    margin-top:2px;

    border:1px solid rgba(255,255,255,.22);

    border-radius:4px;

    background:rgba(255,255,255,.03);

    transition:
        background .25s ease,
        border-color .25s ease;
}


/*------------------------------------*
* Checkbox Tick
*------------------------------------*/

.custom-checkbox::after{
    content:"";

    position:absolute;

    left:5px;
    top:2px;

    width:4px;
    height:8px;

    border:solid #050505;

    border-width:0 2px 2px 0;

    transform:rotate(45deg) scale(0);

    transition:transform .2s ease;
}


/*------------------------------------*
* Checked State
*------------------------------------*/

.consent-label input:checked + .custom-checkbox{
    background:var(--primary);

    border-color:var(--primary);
}


.consent-label input:checked + .custom-checkbox::after{
    transform:rotate(45deg) scale(1);
}


/*------------------------------------*
* Keyboard Focus
*------------------------------------*/

.consent-label input:focus-visible + .custom-checkbox{
    outline:2px solid rgba(211,21,24,.45);

    outline-offset:3px;
}


/*------------------------------------*
* Consent Text
*------------------------------------*/

.consent-text{
    color:#777;

    font-size:.74rem;

    line-height:1.6;
}


.consent-text a{
    color:#bdbdbd;

    text-decoration:underline;

    text-decoration-color:rgba(255,255,255,.25);

    text-underline-offset:3px;

    transition:color .25s ease;
}


.consent-text a:hover{
    color:var(--primary);
}


/*=====================================================*
* SUBMIT BUTTON
*======================================================*/

.cta-card-btn{
    width:100%;

    display:flex;

    justify-content:center;
    align-items:center;

    gap:12px;

    border:none;

    padding:17px 20px;

    border-radius:60px;

    color: white;

    background:var(--primary);

    font-family:inherit;

    font-size:.94rem;

    font-weight:600;

    cursor:pointer;

    transition:
        transform .45s ease,
        box-shadow .45s ease,
        opacity .3s ease;
}


.cta-card-btn:hover{
    transform:translateY(-5px);

    box-shadow:
        0 15px 35px rgba(211,21,24,.35);
}


/*------------------------------------*
* Arrow
*------------------------------------*/

.submit-arrow{
    font-size:1.1rem;

    line-height:1;

    transition:transform .35s ease;
}


.cta-card-btn:hover .submit-arrow{
    transform:translateX(5px);
}


/*------------------------------------*
* Disabled / Loading
*------------------------------------*/

.cta-card-btn:disabled{
    cursor:not-allowed;

    opacity:.65;

    transform:none;

    box-shadow:none;
}


/*=====================================================*
* FORM STATUS
*======================================================*/

.form-status{
    min-height:20px;

    margin-top:14px;

    text-align:center;

    font-size:.78rem;

    line-height:1.5;

    color:#999;
}


/* Success / Error classes */

.form-status.success{
    color:#d0d0d0;
}


.form-status.error{
    color:#b5b5b5;
}


/*=====================================================*
* RESPONSIVE — TABLET
*======================================================*/

@media (max-width:1100px){

    .cta-wrapper{
        grid-template-columns:1fr;

        gap:60px;
    }


    .contact-card{
        width:100%;

        max-width:700px;
    }

}


/*=====================================================*
* RESPONSIVE — MOBILE
*======================================================*/

@media (max-width:768px){

    .cta-contact{
        padding:110px 6%;
    }


    .cta-bg-text{
        font-size:110px;

        letter-spacing:8px;
    }


    .cta-content h2{
        font-size:42px;
    }


    .cta-content p{
        font-size:1rem;

        line-height:1.8;
    }


    .cta-buttons{
        flex-direction:column;
    }


    .primary-btn,
    .secondary-btn{
        width:100%;
    }


    /*------------------------------------*
    * Form Card
    *------------------------------------*/

    .contact-card{
        padding:32px;

        border-radius:26px;
    }


    .contact-card::before{
        border-radius:26px;
    }


    .form-header{
        margin-bottom:24px;
    }


    .form-header h3{
        font-size:30px;
    }


    .form-field input{
        height:52px;
    }


    .form-field textarea{
        min-height:100px;
    }


    .form-row{
        grid-template-columns:1fr;

        gap:0;
    }

}


/*=====================================================*
* RESPONSIVE — SMALL MOBILE
*======================================================*/

@media (max-width:480px){

    .cta-contact{
        padding:90px 5%;
    }


    .cta-content h2{
        font-size:34px;
    }


    .cta-bg-text{
        font-size:72px;
    }


    .contact-card{
        padding:24px;

        border-radius:24px;
    }


    .contact-card::before{
        border-radius:24px;
    }


    .form-header h3{
        font-size:28px;
    }


    .form-header p{
        font-size:.84rem;
    }


    .form-field input{
        height:50px;

        padding-left:15px;

        padding-right:15px;
    }


    .form-field textarea{
        padding:14px 15px;

        min-height:95px;
    }


    .consent-text{
        font-size:.7rem;
    }


    .cta-card-btn{
        padding:16px;
    }

}


/*=====================================================*
* FOOTER
*======================================================*/

.site-footer{
    position:relative;

    background:var(--bg);

    border-top:1px solid var(--border);

    overflow:hidden;

    z-index:1;
}


/*=====================================================*
* BACKGROUND GLOW
*======================================================*/

.site-footer::before{
    content:"";

    position:absolute;

    width:700px;
    height:700px;

    right:-250px;
    bottom:-350px;

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.075),
            transparent 70%
        );

    pointer-events:none;

    z-index:-1;
}


/*=====================================================*
* BACKGROUND TEXT
*======================================================*/

.footer-bg-text{
    position:absolute;

    left:50%;
    bottom:-70px;

    transform:translateX(-50%);

    font-size:clamp(150px,23vw,360px);

    font-weight:800;

    letter-spacing:25px;

    line-height:.8;

    color:#fff;

    opacity:.018;

    white-space:nowrap;

    user-select:none;
    pointer-events:none;

    z-index:-1;
}


/*=====================================================*
* CONTAINER
*======================================================*/

.footer-container{
    width:min(
        100% - 10%,
        var(--container)
    );

    margin:0 auto;

    position:relative;
}


/*=====================================================*
* MAIN FOOTER
*======================================================*/

.footer-main{
    display:grid;

    grid-template-columns:
        1.6fr
        .8fr
        1fr
        1.2fr;

    gap:70px;

    padding:110px 0 90px;
}


/*=====================================================*
* BRAND
*======================================================*/

.footer-brand{
    max-width:380px;
}


/*------------------------------------*
* Logo
*------------------------------------*/

.footer-logo{
    display:inline-block;
    width:136px;
    height:42px;
    overflow:hidden;

    color:var(--text);

    font-size:2rem;

    font-weight:700;

    letter-spacing:3px;

    text-decoration:none;

    margin-bottom:24px;
}

.footer-logo img{
    display:block;
    width:136px;
    height:136px;
    max-width:none;
    object-fit:contain;
    transform:translateY(-47px);
}


.footer-logo span{
    color:var(--primary);

    transition:var(--transition);
}


.footer-logo:hover span{
    color:var(--primary-light);
}


/*------------------------------------*
* Description
*------------------------------------*/

.footer-description{
    max-width:350px;

    color:var(--text-light);

    font-size:.92rem;

    line-height:1.85;

    margin-bottom:30px;
}


/*=====================================================*
* SOCIAL LINKS
*======================================================*/

.footer-socials{
    display:flex;

    gap:10px;
}


.footer-socials a{
    width:42px;
    height:42px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:1px solid var(--border);

    border-radius:50%;

    background:rgba(255,255,255,.025);

    color:var(--text-light);

    text-decoration:none;

    transition:var(--transition);
}


.footer-socials a span{
    font-size:.68rem;

    font-weight:600;

    letter-spacing:.5px;
}


.footer-socials a:hover{
    color: white;

    background:var(--primary);

    border-color:var(--primary);

    transform:translateY(-4px);
}


/*=====================================================*
* FOOTER COLUMNS
*======================================================*/

.footer-column h4{
    position:relative;

    display:inline-block;

    color:var(--text);

    font-size:.82rem;

    font-weight:600;

    letter-spacing:1.8px;

    text-transform:uppercase;

    margin-bottom:28px;
}


/* Small Red Indicator */

.footer-column h4::after{
    content:"";

    position:absolute;

    left:0;
    bottom:-10px;

    width:22px;
    height:2px;

    background:var(--primary);

    border-radius:10px;
}


/*=====================================================*
* NAVIGATION
*======================================================*/

.footer-column ul{
    list-style:none;

    padding:0;
    margin:0;
}


.footer-column ul li{
    margin-bottom:14px;
}


.footer-column ul li a{
    position:relative;

    color:#929292;

    font-size:.9rem;

    text-decoration:none;

    transition:var(--transition);
}


.footer-column ul li a::before{
    content:"";

    position:absolute;

    left:-14px;
    top:50%;

    width:0;
    height:1px;

    background:var(--primary);

    transform:translateY(-50%);

    transition:var(--transition);
}


.footer-column ul li a:hover{
    color:var(--primary);

    padding-left:8px;
}


.footer-column ul li a:hover::before{
    width:7px;
}


/*=====================================================*
* CONTACT
*======================================================*/

.footer-contact-list{
    display:flex;

    flex-direction:column;

    gap:20px;

    margin-bottom:30px;
}


.footer-contact-list > a,
.footer-address{
    display:flex;

    flex-direction:column;

    gap:5px;
}


.footer-contact-list a{
    text-decoration:none;
}


.contact-label{
    color:#666;

    font-size:.68rem;

    letter-spacing:1.5px;

    text-transform:uppercase;
}


.contact-value{
    color:var(--text-light);

    font-size:.88rem;

    line-height:1.5;

    transition:var(--transition);
}


.footer-contact-list a:hover .contact-value{
    color:var(--primary);
}


/*=====================================================*
* FOOTER CTA
*======================================================*/

.footer-cta{
    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

    width:100%;

    padding:15px 18px;

    border-radius:var(--radius);

    background:var(--primary);

    border:1px solid var(--primary);

    color: white;

    text-decoration:none;

    font-size:.82rem;

    font-weight:600;

    transition:var(--transition);
}


.footer-cta-arrow{
    font-size:1.15rem;

    transition:var(--transition);
}


.footer-cta:hover{
    background:var(--primary-light);

    border-color:var(--primary-light);

    transform:translateY(-4px);

    box-shadow:
        0 18px 40px rgba(211,21,24,.20);
}


.footer-cta:hover .footer-cta-arrow{
    transform:translateX(5px);
}


/*=====================================================*
* DIVIDER
*======================================================*/

.footer-divider{
    width:100%;

    height:1px;

    background:var(--border);
}


/*=====================================================*
* FOOTER BOTTOM
*======================================================*/

.footer-bottom{
    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:25px;

    padding:28px 0;
}


.footer-bottom p{
    color:#626262;

    font-size:.72rem;

    line-height:1.6;
}


/*=====================================================*
* LEGAL LINKS
*======================================================*/

.footer-legal{
    display:flex;

    align-items:center;

    gap:14px;
}


.footer-legal a{
    color:#707070;

    font-size:.72rem;

    text-decoration:none;

    transition:var(--transition);
}


.footer-legal a:hover{
    color:var(--primary);
}


.footer-legal span{
    width:3px;
    height:3px;

    border-radius:50%;

    background:var(--primary);

    opacity:.7;
}


/*=====================================================*
* FOOTER CREDIT
*======================================================*/

.footer-credit{
    text-align:right;
}


.footer-credit span{
    color:var(--primary);

    transition:var(--transition);
}


/*=====================================================*
* TABLET
*======================================================*/

@media (max-width:1100px){

    .footer-main{
        grid-template-columns:
            1.4fr
            1fr
            1fr;

        gap:60px;
    }


    .footer-brand{
        grid-column:span 3;

        max-width:500px;
    }


    .footer-bottom{
        flex-wrap:wrap;
    }

}


/*=====================================================*
* MOBILE
*======================================================*/

@media (max-width:768px){

    .footer-container{
        width:min(
            100% - 12%,
            var(--container)
        );
    }


    .footer-main{
        grid-template-columns:1fr 1fr;

        gap:50px 35px;

        padding:80px 0 65px;
    }


    .footer-brand{
        grid-column:span 2;
    }


    .footer-column{
        min-width:0;
    }


    .footer-bg-text{
        font-size:110px;

        letter-spacing:10px;

        bottom:-10px;
    }


    .footer-bottom{
        flex-direction:column;

        align-items:flex-start;

        gap:14px;
    }


    .footer-credit{
        text-align:left;
    }

}


/*=====================================================*
* SMALL MOBILE
*======================================================*/

@media (max-width:480px){

    .footer-container{
        width:90%;
    }


    .footer-main{
        grid-template-columns:1fr;

        gap:45px;

        padding:70px 0 55px;
    }


    .footer-brand{
        grid-column:auto;
    }


    .footer-logo{
        font-size:1.7rem;
    }


    .footer-description{
        font-size:.86rem;
    }


    .footer-bg-text{
        font-size:78px;

        letter-spacing:5px;

        bottom:20px;
    }


    .footer-bottom{
        padding:22px 0;

        gap:12px;
    }


    .footer-legal{
        flex-wrap:wrap;

        gap:10px;
    }


    .footer-credit{
        display:none;
    }

}