/*==========================
  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;
}


/*========================================================
    SERVICES PAGE — MAIN SHOWCASE
========================================================*/

.services-showcase{

    position:relative;

    padding:170px 0 140px;

    background:var(--bg);

    overflow:hidden;

}


/*========================================================
    BACKGROUND BRAND GLOW
========================================================*/

.services-showcase::before{

    content:"";

    position:absolute;

    width:850px;
    height:850px;

    top:60px;
    left:-500px;

    background:radial-gradient(
        circle,
        rgba(211,21,24,.085),
        transparent 70%
    );

    pointer-events:none;

}


.services-showcase::after{

    content:"";

    position:absolute;

    width:750px;
    height:750px;

    right:-430px;
    bottom:4%;

    background:radial-gradient(
        circle,
        rgba(211,21,24,.055),
        transparent 70%
    );

    pointer-events:none;

}


/*========================================================
    CONTAINER
========================================================*/

.services-showcase-container{

    position:relative;

    z-index:2;

}


/*========================================================
    PAGE HEADING
========================================================*/

.services-page-heading{

    display:grid;

    grid-template-columns:1.15fr .85fr;

    gap:90px;

    align-items:end;

    padding-bottom:82px;

}


/*========================================================
    EYEBROW
========================================================*/

.services-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);

}


.services-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);

}


/*========================================================
    MAIN TITLE
========================================================*/

.services-page-heading h1{

    max-width:850px;

    color:#fff;

    font-size:clamp(
        48px,
        5.4vw,
        78px
    );

    line-height:.98;

    letter-spacing:-2.8px;

    font-weight:650;

}


.services-page-heading h1 span{

    color:var(--primary);

}


/*========================================================
    INTRO COPY
========================================================*/

.services-page-heading-copy{

    padding-bottom:7px;

}


.services-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);

}


.services-page-heading-copy p{

    max-width:510px;

    color:#929292;

    font-size:.98rem;

    line-height:1.9;

}


/*========================================================
    SERVICE CARD
========================================================*/

.service-showcase-card{

    position:relative;

    display:grid;

    grid-template-columns:30% 70%;

    min-height:390px;

    margin-bottom:30px;

    overflow:hidden;

    border:1px solid rgba(255,255,255,.075);

    border-radius:24px;

    background:
        linear-gradient(
            115deg,
            rgba(255,255,255,.038),
            rgba(255,255,255,.015)
        );

    box-shadow:
        0 25px 70px rgba(0,0,0,.28);

    transition:
        border-color .45s ease,
        transform .45s cubic-bezier(.2,.7,.2,1),
        box-shadow .45s ease;

}


/*========================================================
    LEFT RED INDICATOR
========================================================*/

.service-showcase-card::before{

    content:"";

    position:absolute;

    left:0;
    top:0;
    bottom:0;

    width:3px;

    background:var(--primary);

    opacity:.55;

    transform:scaleY(.22);

    transform-origin:center;

    transition:
        transform .5s ease,
        opacity .5s ease;

    z-index:5;

}


.service-showcase-card:hover::before{

    transform:scaleY(1);

    opacity:1;

}


.service-showcase-card:hover{

    transform:translateY(-5px);

    border-color:
        rgba(211,21,24,.28);

    box-shadow:
        0 35px 85px rgba(0,0,0,.42),
        0 0 40px rgba(211,21,24,.04);

}


/*========================================================
    REVERSE CARD
========================================================*/

.service-showcase-card-reverse{

    grid-template-columns:70% 30%;

}


.service-showcase-card-reverse
.service-showcase-image{

    order:2;

}


.service-showcase-card-reverse
.service-showcase-content{

    order:1;

}


/*========================================================
    IMAGE
========================================================*/

.service-showcase-image{

    position:relative;

    min-height:390px;

    overflow:hidden;

    background:#111;

}


.service-showcase-card-reverse
.service-showcase-image::after{

    background:
        linear-gradient(
            270deg,
            rgba(0,0,0,.05),
            rgba(0,0,0,.48)
        );

}


.service-showcase-image img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
        transform .8s cubic-bezier(.2,.65,.2,1),
        filter .55s ease;

    filter:
        brightness(.7)
        saturate(.72);

}


.service-showcase-card:hover
.service-showcase-image img{

    transform:scale(1.065);

    filter:
        brightness(.88)
        saturate(1);

}


/*========================================================
    CONTENT
========================================================*/

.service-showcase-content{

    position:relative;

    display:flex;

    flex-direction:column;

    justify-content:center;

    padding:45px 55px;

}


/* Reverse content */

.service-showcase-card-reverse
.service-showcase-content{

    padding-left:55px;

    padding-right:50px;

}


/*========================================================
    HEADING ROW
========================================================*/

.service-heading-row{

    display:flex;

    align-items:center;

    justify-content:flex-start;

    gap:20px;

    margin-bottom:20px;

}


/*========================================================
    SERVICE NUMBER
========================================================*/

.service-number{

    position:relative;

    flex:0 0 auto;

    width:48px;

    color:var(--primary);

    font-size:1rem;

    font-weight:700;

    line-height:1;

    letter-spacing:1px;

}


.service-number::after{

    content:"";

    display:block;

    width:24px;
    height:2px;

    margin-top:8px;

    background:var(--primary);

    opacity:.7;

    transition:
        width .35s ease,
        opacity .35s ease;

}


.service-showcase-card:hover
.service-number::after{

    width:36px;

    opacity:1;

}


/*========================================================
    HEADING CONTENT
========================================================*/

.service-heading-content{

    min-width:0;

}


/*========================================================
    CATEGORY
========================================================*/

.service-category{

    display:block;

    margin-bottom:8px;

    color:var(--primary-light);

    font-size:.66rem;

    font-weight:700;

    letter-spacing:2.4px;

    text-transform:uppercase;

}


/*========================================================
    SERVICE TITLE
========================================================*/

.service-showcase-content h2{

    color:#fff;

    font-size:clamp(
        29px,
        2.7vw,
        42px
    );

    line-height:1.08;

    letter-spacing:-.9px;

    font-weight:650;

    transition:
        color .35s ease;

}


.service-showcase-card:hover
.service-showcase-content h2{

    color:#fff;

}


/*========================================================
    DESCRIPTION
========================================================*/

.service-description{

    max-width:850px;

    color:#999;

    font-size:.9rem;

    line-height:1.8;

}


.service-description-secondary{

    margin-top:11px;

    color:#777;

}


/*========================================================
    BENEFIT PILLS
========================================================*/

.service-benefits{

    display:flex;

    flex-wrap:wrap;

    gap:8px;

    margin-top:23px;

}


.service-benefits span{

    position:relative;

    overflow:hidden;

    padding:8px 13px;

    border:1px solid rgba(211,21,24,.16);

    border-radius:50px;

    background:rgba(211,21,24,.035);

    color:#999;

    font-size:.66rem;

    font-weight:500;

    letter-spacing:.25px;

    cursor:default;

    transition:
        color .3s ease,
        background .3s ease,
        border-color .3s ease,
        transform .3s ease,
        box-shadow .3s ease;

}


/* subtle shine */

.service-benefits span::before{

    content:"";

    position:absolute;

    top:0;
    left:-100%;

    width:70%;
    height:100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.16),
            transparent
        );

    transform:skewX(-20deg);

    transition:left .5s ease;

}


.service-benefits span:hover::before{

    left:130%;

}


.service-benefits span:hover{

    transform:translateY(-3px);

    color:#fff;

    background:var(--primary);

    border-color:var(--primary);

    box-shadow:
        0 10px 25px rgba(211,21,24,.18);

}


/*========================================================
    EXPLORE LINK
========================================================*/

.service-explore-link{

    display:inline-flex;

    align-items:center;

    align-self:flex-start;

    gap:12px;

    margin-top:25px;

    padding-bottom:7px;

    border-bottom:1px solid
        rgba(211,21,24,.35);

    color:#d0d0d0;

    font-size:.74rem;

    font-weight:600;

    letter-spacing:.4px;

    transition:
        color .3s ease,
        border-color .3s ease;

}


.service-explore-arrow{

    color:var(--primary);

    font-size:1.1rem;

    line-height:1;

    transition:
        transform .35s ease;

}


.service-explore-link:hover{

    color:var(--primary-light);

    border-color:var(--primary);

}


.service-explore-link:hover
.service-explore-arrow{

    transform:translateX(6px);

}


/*========================================================
    TABLET
========================================================*/

@media (max-width:1100px){

    .services-page-heading{

        grid-template-columns:1fr;

        gap:35px;

    }


    .service-showcase-card{

        grid-template-columns:35% 65%;

    }


    .service-showcase-card-reverse{

        grid-template-columns:65% 35%;

    }


    .service-showcase-content{

        padding:40px 38px;

    }


    .service-showcase-card-reverse
    .service-showcase-content{

        padding-left:42px;

        padding-right:38px;

    }


    .service-showcase-image{

        min-height:430px;

    }


    .service-showcase-content h2{

        font-size:33px;

    }


    .service-number{

        width:42px;

        font-size:.9rem;

    }

}


/*========================================================
    MOBILE
========================================================*/

@media (max-width:768px){

    .services-showcase{

        padding:125px 0 90px;

    }


    .services-page-heading{

        padding-bottom:60px;

    }


    .services-page-heading h1{

        font-size:46px;

        letter-spacing:-1.6px;

    }


    .services-page-heading-copy p{

        font-size:.91rem;

        line-height:1.8;

    }


    .service-showcase-card,
    .service-showcase-card-reverse{

        display:flex;

        flex-direction:column;

        margin-bottom:24px;

        border-radius:21px;

    }


    .service-showcase-card-reverse
    .service-showcase-image{

        order:1;

    }


    .service-showcase-card-reverse
    .service-showcase-content{

        order:2;

    }


    .service-showcase-image{

        min-height:240px;

        height:240px;

    }


    .service-showcase-image img{

        object-position:center;

    }


    .service-showcase-content,
    .service-showcase-card-reverse
    .service-showcase-content{

        padding:32px 27px 36px;

    }


    .service-heading-row{

        align-items:flex-start;

        gap:15px;

        margin-bottom:17px;

    }


    .service-number{

        width:34px;

        padding-top:3px;

        font-size:.78rem;

    }


    .service-number::after{

        width:19px;

        height:2px;

        margin-top:7px;

    }


    .service-showcase-card:hover
    .service-number::after{

        width:27px;

    }


    .service-category{

        margin-bottom:7px;

        font-size:.61rem;

        letter-spacing:2px;

    }


    .service-showcase-content h2{

        font-size:30px;

        line-height:1.1;

    }


    .service-description{

        font-size:.85rem;

        line-height:1.75;

    }


    .service-description-secondary{

        margin-top:10px;

    }


    .service-benefits{

        margin-top:21px;

        gap:7px;

    }


    .service-benefits span{

        font-size:.61rem;

        padding:7px 10px;

    }


    .service-explore-link{

        margin-top:24px;

    }

}


/*========================================================
    SMALL MOBILE
========================================================*/

@media (max-width:480px){

    .services-showcase{

        padding:105px 0 70px;

    }


    .services-page-heading{

        padding-bottom:50px;

    }


    .services-page-eyebrow{

        font-size:.63rem;

        letter-spacing:1.8px;

        padding:8px 14px;

    }


    .services-page-heading h1{

        font-size:37px;

        line-height:1.04;

        letter-spacing:-1.2px;

    }


    .services-page-heading-copy p{

        font-size:.85rem;

        line-height:1.75;

    }


    .service-showcase-image{

        height:215px;

        min-height:215px;

    }


    .service-showcase-content,
    .service-showcase-card-reverse
    .service-showcase-content{

        padding:29px 21px 33px;

    }


    .service-heading-row{

        gap:13px;

    }


    .service-number{

        width:30px;

        font-size:.7rem;

    }


    .service-number::after{

        width:17px;

        margin-top:6px;

    }


    .service-category{

        font-size:.58rem;

        letter-spacing:1.8px;

    }


    .service-showcase-content h2{

        font-size:27px;

    }


    .service-description{

        font-size:.81rem;

        line-height:1.72;

    }


    .service-benefits{

        gap:6px;

    }


    .service-benefits span{

        padding:6px 9px;

        font-size:.58rem;

    }


    .service-explore-link{

        font-size:.69rem;

        margin-top:22px;

    }

}


/*========================================================
    REDUCED MOTION
========================================================*/

@media (prefers-reduced-motion:reduce){

    .service-showcase-card,
    .service-showcase-image img,
    .service-benefits span,
    .service-number::after,
    .service-explore-arrow{

        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;
    }

}