/*==========================
  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;
    --text-muted:#8B8D91;

    --border:rgba(255,255,255,.08);

    --radius:16px;
    --radius-lg:24px;

    --shadow-lg:0 25px 80px rgba(0,0,0,.65);

    --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;

}

.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;
    padding:8px 10px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:10px;
    background:rgba(255,255,255,.02);
    color:#fff;
    font-size:1.5rem;
    line-height:1;
    cursor:pointer;
}

.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);

}

.reveal-up,
.reveal-left,
.reveal-right,
.reveal-scale{
    opacity:0;
    transition:opacity .7s ease, transform .7s ease;
}

.reveal-up{
    transform:translateY(28px);
}

.reveal-left{
    transform:translateX(-32px);
}

.reveal-right{
    transform:translateX(32px);
}

.reveal-scale{
    transform:scale(.96);
}

.reveal-up.is-visible,
.reveal-left.is-visible,
.reveal-right.is-visible,
.reveal-scale.is-visible{
    opacity:1;
    transform:none;
}

/*========================================================
    ABOUT US PAGE
========================================================*/


/*========================================================
    ABOUT HERO
========================================================*/

.about-hero{

    position:relative;

    padding:155px 0 105px;

    background:var(--bg);

    overflow:hidden;

}


/*========================================================
    HERO BACKGROUND TEXT
========================================================*/

.about-hero-bg-text{

    position:absolute;

    left:50%;
    top:45%;

    transform:translate(-50%,-50%);

    z-index:0;

    font-size:clamp(
        170px,
        21vw,
        330px
    );

    font-weight:900;

    line-height:.8;

    letter-spacing:-.09em;

    color:rgba(255,255,255,.018);

    white-space:nowrap;

    pointer-events:none;

    user-select:none;

}


/*========================================================
    HERO CONTENT
========================================================*/

.about-hero-content{

    position:relative;

    z-index:2;

    width:100%;

}


/*========================================================
    HERO EYEBROW
========================================================*/

.about-eyebrow{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-bottom:30px;

    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;

}


.about-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 MAIN
========================================================*/

.about-hero-main{

    display:grid;

    grid-template-columns:
        minmax(0,1.15fr)
        minmax(300px,.85fr);

    gap:80px;

    align-items:end;

}


/*========================================================
    HERO HEADING
========================================================*/

.about-hero h1{

    max-width:850px;

    margin:0;

    color:#fff;

    font-size:clamp(
        52px,
        6.2vw,
        88px
    );

    line-height:.92;

    letter-spacing:-3.7px;

    font-weight:650;

}


.about-hero h1 span{

    color:var(--primary);

}


/*========================================================
    HERO COPY
========================================================*/

.about-hero-copy{

    padding-bottom:7px;

}


.about-copy-line{

    display:block;

    width:48px;
    height:2px;

    margin-bottom:21px;

    background:var(--primary);

    box-shadow:
        0 0 15px rgba(211,21,24,.25);

}


.about-hero-copy p{

    max-width:500px;

    margin:0;

    color:#929292;

    font-size:.92rem;

    line-height:1.85;

}


/*========================================================
    ABOUT INTRODUCTION
========================================================*/

.about-intro{

    position:relative;

    padding:100px 0;

    background:var(--bg);

    overflow:hidden;

}


.about-intro-layout{

    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,.92fr);

    gap:90px;

    align-items:center;

}


/*========================================================
    SECTION INDEX
========================================================*/

.about-section-index{

    display:flex;

    align-items:center;

    gap:9px;

    margin-bottom:22px;

    color:var(--text-muted);

    font-size:.62rem;

    font-weight:700;

    letter-spacing:2.2px;

}


.about-section-index span{

    color:var(--primary);

}


/*========================================================
    INTRO CONTENT
========================================================*/

.about-intro-content{

    max-width:650px;

}


.about-intro-content h2{

    margin:0 0 25px;

    color:#fff;

    font-size:clamp(
        43px,
        5vw,
        68px
    );

    font-weight:650;

    line-height:.95;

    letter-spacing:-2.7px;

}


.about-intro-content h2 span{

    color:var(--primary);

}


.about-intro-content p{

    max-width:620px;

    margin:0 0 15px;

    color:#929292;

    font-size:.84rem;

    line-height:1.82;

}


.about-intro-content .about-intro-lead{

    margin-bottom:20px;

    color:var(--text);

    font-size:1rem;

    line-height:1.75;

}


/*========================================================
    INTRO SIGNATURE
========================================================*/

.about-intro-signature{

    display:flex;

    align-items:center;

    gap:13px;

    margin-top:28px;

    color:var(--primary-light);

    font-size:.61rem;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

}


.signature-line{

    width:42px;
    height:1px;

    background:var(--primary);

}


/*========================================================
    INTRO MEDIA
========================================================*/

.about-intro-media{

    position:relative;

    min-width:0;

}


.about-intro-image{

    position:relative;

    width:100%;

    aspect-ratio:1.15 / 1;

    overflow:hidden;

    border:1px solid var(--border);

    border-radius:var(--radius-lg);

    background:var(--surface);

    box-shadow:var(--shadow-lg);

    isolation:isolate;

}


.about-intro-image img{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    transform:scale(1);

    transition:
        transform .9s cubic-bezier(.22,.61,.36,1);

}


.about-intro-image:hover img{

    transform:scale(1.035);

}


/*========================================================
    IMAGE OVERLAY
========================================================*/

.about-image-overlay{

    position:absolute;

    inset:0;

    z-index:1;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.78),
            rgba(0,0,0,.08) 60%,
            transparent
        );

    pointer-events:none;

}


/*========================================================
    IMAGE LABEL
========================================================*/

.about-image-label{

    position:absolute;

    left:24px;
    right:24px;
    bottom:22px;

    z-index:2;

    display:flex;

    flex-direction:column;

    gap:6px;

}


.about-image-label span{

    color:var(--primary-light);

    font-size:.58rem;

    font-weight:700;

    letter-spacing:2px;

}


.about-image-label strong{

    color:#fff;

    font-size:1.05rem;

    font-weight:500;

}


/*========================================================
    INTRO FLOATING NUMBER
========================================================*/

.about-intro-number{

    position:absolute;

    right:-25px;
    top:-35px;

    z-index:3;

    color:rgba(255,255,255,.035);

    font-size:170px;

    font-weight:800;

    line-height:.75;

    letter-spacing:-.09em;

    pointer-events:none;

}


/*========================================================
    ABOUT STATS
========================================================*/

.about-stats{

    position:relative;

    padding:85px 0;

    background:var(--surface);

    border-top:1px solid rgba(255,255,255,.025);

    border-bottom:1px solid rgba(255,255,255,.025);

    overflow:hidden;

}


/*========================================================
    STATS HEADER
========================================================*/

.about-stats-header{

    display:flex;

    align-items:flex-end;

    justify-content:space-between;

    gap:60px;

    margin-bottom:45px;

}


.about-stats-header .about-section-index{

    margin-bottom:0;

}


/*========================================================
    STATS GRID
========================================================*/

.about-stats-grid{

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    border-top:1px solid var(--border);

    border-left:1px solid var(--border);

}


/*========================================================
    STAT
========================================================*/

.about-stat{

    min-height:205px;

    padding:28px 25px;

    border-right:1px solid var(--border);

    border-bottom:1px solid var(--border);

    transition:
        background var(--transition),
        transform var(--transition);

}


.about-stat:hover{

    background:rgba(255,255,255,.018);

}


/*========================================================
    STAT NUMBER
========================================================*/

.about-stat-number{

    display:flex;

    align-items:flex-start;

    margin-bottom:12px;

    color:#fff;

    font-size:clamp(
        48px,
        5vw,
        70px
    );

    font-weight:650;

    line-height:.9;

    letter-spacing:-3px;

}


.counter-symbol{

    margin-left:4px;

    color:var(--primary);

    font-size:.55em;

    line-height:1;

}


/*========================================================
    STAT LABEL
========================================================*/

.about-stat-label{

    display:block;

    margin-bottom:13px;

    color:var(--primary-light);

    font-size:.58rem;

    font-weight:700;

    letter-spacing:1.8px;

}


/*========================================================
    STAT DESCRIPTION
========================================================*/

.about-stat p{

    max-width:230px;

    margin:0;

    color:#777;

    font-size:.7rem;

    line-height:1.7;

}


/*========================================================
    EXPERIENCE
========================================================*/

.about-experience{

    position:relative;

    padding:115px 0;

    background:var(--bg);

    overflow:hidden;

}


.about-experience-bg{

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    z-index:0;

    color:rgba(255,255,255,.014);

    font-size:clamp(
        120px,
        17vw,
        280px
    );

    font-weight:900;

    line-height:.8;

    letter-spacing:-.09em;

    white-space:nowrap;

    pointer-events:none;

    user-select:none;

}


/*========================================================
    EXPERIENCE LAYOUT
========================================================*/

.about-experience-layout{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:
        minmax(0,.9fr)
        minmax(0,1.1fr);

    gap:100px;

    align-items:start;

}


/*========================================================
    EXPERIENCE HEADING
========================================================*/

.about-experience-heading{

    position:sticky;

    top:120px;

}


.about-experience-heading h2{

    max-width:560px;

    margin:0;

    color:#fff;

    font-size:clamp(
        45px,
        5.2vw,
        72px
    );

    font-weight:650;

    line-height:.94;

    letter-spacing:-3px;

}


.about-experience-heading h2 span{

    color:var(--primary);

}


/*========================================================
    EXPERIENCE ACCENT
========================================================*/

.experience-accent{

    display:flex;

    align-items:center;

    gap:12px;

    margin-top:32px;

}


.experience-accent span{

    width:45px;
    height:1px;

    background:var(--primary);

}


.experience-accent strong{

    color:var(--text-muted);

    font-size:.53rem;

    font-weight:700;

    letter-spacing:1.6px;

}


/*========================================================
    EXPERIENCE CONTENT
========================================================*/

.about-experience-content{

    max-width:700px;

}


.about-experience-content p{

    margin:0 0 19px;

    color:#858585;

    font-size:.84rem;

    line-height:1.9;

}


.about-experience-content .experience-lead{

    margin-bottom:25px;

    color:var(--text);

    font-size:1.03rem;

    line-height:1.8;

}


/*========================================================
    EXPERIENCE BOTTOM
========================================================*/

.experience-bottom{

    display:flex;

    align-items:center;

    gap:13px;

    margin-top:30px;

    color:var(--primary-light);

    font-size:.56rem;

    font-weight:700;

    letter-spacing:1.8px;

}


.experience-line{

    width:45px;
    height:1px;

    background:var(--primary);

}


/*========================================================
    OUR PROCESS
========================================================*/

.about-process{

    position:relative;

    padding:105px 0 120px;

    background:var(--surface);

    overflow:hidden;

}


/*========================================================
    PROCESS HEADER
========================================================*/

.about-process-header{

    display:grid;

    grid-template-columns:
        1fr
        .55fr;

    gap:80px;

    align-items:end;

    margin-bottom:65px;

}


.about-process-header h2{

    max-width:1100px;

    margin:0;

    color:#fff;

    font-size:clamp(
        45px,
        5.3vw,
        72px
    );

    font-weight:650;

    line-height:.94;

    letter-spacing:-3px;

}


.about-process-header h2 span{

    color:var(--primary);

}


.about-process-header > p{

    max-width:380px;

    margin:0;

    color:#808080;

    font-size:.8rem;

    line-height:1.8;

}


/*========================================================
    PROCESS TRACK
========================================================*/

.process-track{

    position:relative;

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    border-top:1px solid rgba(255,255,255,.1);

}


/*========================================================
    PROCESS CONNECTING LINE
========================================================*/

.process-track::before{

    content:"";

    position:absolute;

    left:0;
    right:0;
    top:-1px;

    height:1px;

    background:
        linear-gradient(
            90deg,
            var(--primary),
            rgba(211,21,24,.15),
            transparent
        );

    transform:scaleX(0);

    transform-origin:left;

    transition:
        transform 1.4s cubic-bezier(.22,.61,.36,1);

}


.process-track.is-active::before{

    transform:scaleX(1);

}


/*========================================================
    PROCESS ITEM
========================================================*/

.process-item{

    position:relative;

    min-height:285px;

    padding:25px 27px 20px;

    border-right:1px solid var(--border);

    opacity:.35;

    transform:translateY(25px);

    transition:
        opacity .7s ease,
        transform .7s cubic-bezier(.22,.61,.36,1),
        background .4s ease;

}


.process-item:first-child{

    border-left:1px solid var(--border);

}


.process-item.is-visible,
.process-item.is-active{

    opacity:1;

    transform:translateY(0);

}

.process-item.is-focused{
    background:rgba(255,255,255,.018);
}


.process-item:hover{

    background:rgba(255,255,255,.018);

}


/*========================================================
    PROCESS TOP
========================================================*/

.process-top{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin-bottom:55px;

}


/*========================================================
    PROCESS NUMBER
========================================================*/

.process-number{

    color:var(--primary);

    font-size:.65rem;

    font-weight:700;

    letter-spacing:2px;

}


/*========================================================
    PROCESS DOT
========================================================*/

.process-dot{

    width:8px;
    height:8px;

    border:1px solid rgba(211,21,24,.5);

    border-radius:50%;

    background:var(--bg);

    box-shadow:
        0 0 0 5px rgba(211,21,24,.035);

    transition:
        background var(--transition),
        box-shadow var(--transition);

}


.process-item.is-visible .process-dot{

    background:var(--primary);

    box-shadow:
        0 0 0 5px rgba(211,21,24,.09),
        0 0 18px rgba(211,21,24,.3);

}


/*========================================================
    PROCESS LABEL
========================================================*/

.process-label{

    display:block;

    margin-bottom:8px;

    color:var(--text-muted);

    font-size:.53rem;

    font-weight:700;

    letter-spacing:1.8px;

}


/*========================================================
    PROCESS HEADING
========================================================*/

.process-content h3{

    margin:0 0 12px;

    color:#fff;

    font-size:1.35rem;

    font-weight:500;

    letter-spacing:-.4px;

}


/*========================================================
    PROCESS DESCRIPTION
========================================================*/

.process-content p{

    max-width:250px;

    margin:0;

    color:#777;

    font-size:.72rem;

    line-height:1.75;

}


/*========================================================
    LARGE TABLET / SMALL LAPTOP
========================================================*/

@media (max-width:1100px){

    .about-hero{

        padding-top:135px;

    }


    .about-hero-main{

        gap:55px;

    }


    .about-hero h1{

        font-size:clamp(
            48px,
            6vw,
            72px
        );

        letter-spacing:-2.8px;

    }


    .about-intro-layout{

        gap:60px;

    }


    .about-experience-layout{

        gap:65px;

    }


    .about-stats-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .about-stat{

        min-height:185px;

    }


    .about-process-header{

        gap:50px;

    }


    .process-item{

        padding-left:20px;
        padding-right:20px;

    }

}


/*========================================================
    TABLET
========================================================*/

@media (max-width:850px){

    /*----------------------------------------------
        HERO
    ----------------------------------------------*/

    .about-hero{

        padding-top:115px;

        padding-bottom:85px;

    }


    .about-hero-main{

        grid-template-columns:1fr;

        gap:28px;

        align-items:start;

    }


    .about-hero-copy{

        padding-bottom:0;

    }


    .about-hero-copy p{

        max-width:650px;

    }


    /*----------------------------------------------
        INTRO
    ----------------------------------------------*/

    .about-intro{

        padding:80px 0;

    }


    .about-intro-layout{

        grid-template-columns:1fr;

        gap:45px;

    }


    .about-intro-content{

        max-width:720px;

    }


    .about-intro-media{

        max-width:720px;

    }


    /*----------------------------------------------
        STATS
    ----------------------------------------------*/

    .about-stats{

        padding:75px 0;

    }


    .about-stats-header{

        align-items:flex-start;

        flex-direction:column;

        gap:18px;

        margin-bottom:35px;

    }


    .about-stats-header p{

        max-width:600px;

    }


    /*----------------------------------------------
        EXPERIENCE
    ----------------------------------------------*/

    .about-experience{

        padding:85px 0;

    }


    .about-experience-layout{

        grid-template-columns:1fr;

        gap:45px;

    }


    .about-experience-heading{

        position:relative;

        top:auto;

    }


    .about-experience-heading h2{

        max-width:700px;

    }


    .about-experience-content{

        max-width:720px;

    }


    /*----------------------------------------------
        PROCESS
    ----------------------------------------------*/

    .about-process{

        padding:85px 0 95px;

    }


    .about-process-header{

        grid-template-columns:1fr;

        gap:22px;

        margin-bottom:50px;

    }


    .about-process-header > p{

        max-width:600px;

    }


    .process-track{

        grid-template-columns:
            repeat(2,1fr);

    }


    .process-item{

        min-height:245px;

    }


    .process-item:nth-child(2){

        border-right:0;

    }


    .process-item:nth-child(n+3){

        border-top:1px solid var(--border);

    }

}


/*========================================================
    MOBILE
========================================================*/

@media (max-width:600px){

    .menu-btn{
        display:flex;
        align-items:center;
        justify-content:center;
    }

    /*----------------------------------------------
        HERO
    ----------------------------------------------*/

    .about-hero{

        padding-top:105px;

        padding-bottom:68px;

    }


    .about-hero-bg-text{

        top:35%;

        font-size:35vw;

    }


    .about-eyebrow{

        gap:8px;

        margin-bottom:22px;

        padding:8px 14px;

        font-size:.61rem;

        letter-spacing:2px;

    }


    .about-eyebrow::before{

        width:6px;
        height:6px;

    }


    .about-hero-main{

        gap:25px;

    }


    .about-hero h1{

        font-size:clamp(
            43px,
            12vw,
            60px
        );

        line-height:.95;

        letter-spacing:-2.2px;

    }


    .about-copy-line{

        width:40px;

        margin-bottom:17px;

    }


    .about-hero-copy p{

        max-width:100%;

        font-size:.79rem;

        line-height:1.8;

    }


    /*----------------------------------------------
        INTRO
    ----------------------------------------------*/

    .about-intro{

        padding:65px 0;

    }


    .about-section-index{

        margin-bottom:18px;

        font-size:.57rem;

        letter-spacing:1.8px;

    }


    .about-intro-layout{

        gap:35px;

    }


    .about-intro-content h2{

        margin-bottom:21px;

        font-size:clamp(
            40px,
            11.5vw,
            56px
        );

        line-height:.95;

        letter-spacing:-2px;

    }


    .about-intro-content .about-intro-lead{

        margin-bottom:17px;

        font-size:.9rem;

        line-height:1.75;

    }


    .about-intro-content p{

        font-size:.73rem;

        line-height:1.75;

    }


    .about-intro-signature{

        margin-top:23px;

        font-size:.55rem;

    }


    .about-intro-image{

        aspect-ratio:1 / .9;

        border-radius:var(--radius);

    }


    .about-image-label{

        left:17px;
        right:17px;
        bottom:17px;

    }


    .about-image-label span{

        font-size:.53rem;

    }


    .about-image-label strong{

        font-size:.9rem;

    }


    .about-intro-number{

        right:-8px;
        top:-18px;

        font-size:100px;

    }


    /*----------------------------------------------
        STATS
    ----------------------------------------------*/

    .about-stats{

        padding:65px 0;

    }


    .about-stats-header{

        margin-bottom:30px;

    }


    .about-stats-header p{

        font-size:.72rem;

        line-height:1.75;

    }


    .about-stats-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .about-stat{

        min-height:170px;

        padding:21px 16px;

    }


    .about-stat-number{

        margin-bottom:10px;

        font-size:43px;

        letter-spacing:-2px;

    }


    .about-stat-label{

        margin-bottom:10px;

        font-size:.5rem;

        letter-spacing:1.4px;

    }


    .about-stat p{

        font-size:.62rem;

        line-height:1.65;

    }


    /*----------------------------------------------
        EXPERIENCE
    ----------------------------------------------*/

    .about-experience{

        padding:70px 0;

    }


    .about-experience-bg{

        top:20%;

        font-size:29vw;

    }


    .about-experience-layout{

        gap:35px;

    }


    .about-experience-heading h2{

        font-size:clamp(
            40px,
            11.5vw,
            58px
        );

        line-height:.95;

        letter-spacing:-2px;

    }


    .experience-accent{

        margin-top:24px;

    }


    .experience-accent strong{

        font-size:.47rem;

        letter-spacing:1.2px;

    }


    .about-experience-content .experience-lead{

        margin-bottom:21px;

        font-size:.9rem;

        line-height:1.75;

    }


    .about-experience-content p{

        margin-bottom:16px;

        font-size:.73rem;

        line-height:1.78;

    }


    .experience-bottom{

        margin-top:25px;

        font-size:.49rem;

        letter-spacing:1.3px;

    }


    /*----------------------------------------------
        PROCESS
    ----------------------------------------------*/

    .about-process{

        padding:70px 0 75px;

    }


    .about-process-header{

        gap:20px;

        margin-bottom:40px;

    }


    .about-process-header h2{

        font-size:clamp(
            40px,
            11.5vw,
            58px
        );

        line-height:.95;

        letter-spacing:-2px;

    }


    .about-process-header > p{

        font-size:.72rem;

        line-height:1.75;

    }


    .process-track{

        grid-template-columns:1fr;

        border-top:1px solid var(--border);

    }


    .process-item{

        min-height:auto;

        padding:23px 17px 27px;

        border-left:1px solid var(--border);

        border-right:1px solid var(--border);

        border-bottom:1px solid var(--border);

        border-top:0;

    }


    .process-item:nth-child(n){

        border-top:0;

    }


    .process-item:first-child{

        border-left:1px solid var(--border);

    }


    .process-top{

        margin-bottom:32px;

    }


    .process-number{

        font-size:.58rem;

        letter-spacing:1.7px;

    }


    .process-dot{

        width:7px;
        height:7px;

    }


    .process-label{

        font-size:.48rem;

        letter-spacing:1.5px;

    }


    .process-content h3{

        margin-bottom:9px;

        font-size:1.15rem;

    }


    .process-content p{

        max-width:100%;

        font-size:.68rem;

        line-height:1.7;

    }

}


/*========================================================
    VERY SMALL MOBILE
========================================================*/

@media (max-width:380px){

    .about-hero h1{

        font-size:43px;

    }


    .about-intro-content h2,
    .about-experience-heading h2,
    .about-process-header h2{

        font-size:40px;

    }


    .about-stats-grid{

        grid-template-columns:1fr;

    }


    .about-stat{

        min-height:auto;

    }

}


/*========================================================
    REDUCED MOTION
========================================================*/

@media (prefers-reduced-motion:reduce){

    .about-intro-image img,
    .about-stat,
    .process-item,
    .process-track::before{

        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;
    }

}


