/*==========================
  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;
}


/*========================================================
    CONTACT PAGE
    HERO + DETAILS
========================================================*/


/*========================================================
    CONTACT HERO
========================================================*/

.contact-hero{

    position:relative;

    min-height:92vh;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:150px 0 110px;

    background:#050505;

    overflow:hidden;

    isolation:isolate;

}

/*========================================================
    CONTACT HERO — ATMOSPHERIC BACKGROUND
========================================================*/

.contact-hero{

    position:relative;

    min-height:clamp(680px, 88vh, 900px);

    display:flex;

    align-items:center;

    justify-content:center;

    overflow:hidden;

    isolation:isolate;

    background:var(--bg);

}


/*========================================================
    EFFECT CONTAINER
========================================================*/

.contact-hero-effects{

    position:absolute;

    inset:0;

    overflow:hidden;

    pointer-events:none;

    z-index:-1;

}


/*========================================================
    LARGE ATMOSPHERIC GLOWS
========================================================*/

.hero-glow{

    position:absolute;

    border-radius:50%;

    pointer-events:none;

    filter:blur(80px);

    opacity:.65;

    will-change:transform;

}


/*--------------------------------------------------------
    GLOW ONE — LEFT
--------------------------------------------------------*/

.hero-glow-one{

    width:520px;

    height:520px;

    left:-220px;

    top:5%;

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.22) 0%,
            rgba(211,21,24,.10) 35%,
            transparent 72%
        );

    animation:
        contactGlowOne 13s ease-in-out infinite alternate;

}


/*--------------------------------------------------------
    GLOW TWO — RIGHT
--------------------------------------------------------*/

.hero-glow-two{

    width:620px;

    height:620px;

    right:-280px;

    bottom:-180px;

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.18) 0%,
            rgba(211,21,24,.075) 38%,
            transparent 72%
        );

    animation:
        contactGlowTwo 16s ease-in-out infinite alternate;

}


/*--------------------------------------------------------
    GLOW THREE — TOP CENTRE
--------------------------------------------------------*/

.hero-glow-three{

    width:420px;

    height:420px;

    left:50%;

    top:-260px;

    transform:translateX(-50%);

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.13) 0%,
            rgba(211,21,24,.045) 42%,
            transparent 72%
        );

    filter:blur(95px);

    animation:
        contactGlowThree 11s ease-in-out infinite alternate;

}


/*========================================================
    CENTRE ATMOSPHERIC GLOW
========================================================*/

.hero-core-glow{

    position:absolute;

    width:650px;

    height:380px;

    left:50%;

    top:52%;

    transform:
        translate(-50%,-50%);

    border-radius:50%;

    background:
        radial-gradient(
            ellipse,
            rgba(211,21,24,.075) 0%,
            rgba(211,21,24,.035) 35%,
            transparent 72%
        );

    filter:blur(45px);

    opacity:.8;

    animation:
        coreGlowPulse 7s ease-in-out infinite;

}


/*========================================================
    VERY SUBTLE RADIAL LIGHT
========================================================*/

.contact-hero-effects::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        radial-gradient(
            circle at 50% 45%,
            rgba(255,255,255,.025),
            transparent 35%
        );

    pointer-events:none;

}


/*========================================================
    SPARKLES
========================================================*/

.hero-sparkle{

    position:absolute;

    width:3px;

    height:3px;

    border-radius:50%;

    background:#fff;

    opacity:.45;

    box-shadow:
        0 0 5px rgba(255,255,255,.65),
        0 0 12px rgba(211,21,24,.45);

    animation:
        sparkleFloat
        var(--sparkle-duration, 5s)
        ease-in-out
        infinite;

}


/*========================================================
    SPARKLE POSITIONS
========================================================*/

.sparkle-1{

    left:14%;

    top:27%;

    --sparkle-duration:5.5s;

}


.sparkle-2{

    left:24%;

    top:68%;

    width:2px;

    height:2px;

    --sparkle-duration:7s;

}


.sparkle-3{

    left:37%;

    top:19%;

    width:2px;

    height:2px;

    --sparkle-duration:4.5s;

}


.sparkle-4{

    right:17%;

    top:30%;

    --sparkle-duration:6s;

}


.sparkle-5{

    right:27%;

    top:70%;

    width:2px;

    height:2px;

    --sparkle-duration:5s;

}


.sparkle-6{

    right:11%;

    top:55%;

    width:3px;

    height:3px;

    --sparkle-duration:7.5s;

}


.sparkle-7{

    left:8%;

    top:52%;

    width:2px;

    height:2px;

    --sparkle-duration:6.5s;

}


.sparkle-8{

    left:50%;

    top:78%;

    width:2px;

    height:2px;

    --sparkle-duration:5.8s;

}


/*========================================================
    CROSS-SHAPED SPARKLE
========================================================*/

.sparkle-1::before,
.sparkle-1::after,
.sparkle-4::before,
.sparkle-4::after{

    content:"";

    position:absolute;

    left:50%;

    top:50%;

    transform:translate(-50%,-50%);

    background:rgba(255,255,255,.55);

}


.sparkle-1::before,
.sparkle-4::before{

    width:18px;

    height:1px;

}


.sparkle-1::after,
.sparkle-4::after{

    width:1px;

    height:18px;

}


/*========================================================
    GLOW ANIMATIONS
========================================================*/

@keyframes contactGlowOne{

    0%{

        transform:
            translate3d(0,0,0)
            scale(1);

    }

    50%{

        transform:
            translate3d(70px,35px,0)
            scale(1.08);

    }

    100%{

        transform:
            translate3d(25px,80px,0)
            scale(.96);

    }

}


@keyframes contactGlowTwo{

    0%{

        transform:
            translate3d(0,0,0)
            scale(1);

    }

    50%{

        transform:
            translate3d(-60px,-45px,0)
            scale(1.1);

    }

    100%{

        transform:
            translate3d(-25px,-80px,0)
            scale(.95);

    }

}


@keyframes contactGlowThree{

    0%{

        opacity:.45;

        transform:
            translateX(-50%)
            translateY(0)
            scale(.9);

    }

    100%{

        opacity:.8;

        transform:
            translateX(-50%)
            translateY(55px)
            scale(1.12);

    }

}


@keyframes coreGlowPulse{

    0%,
    100%{

        opacity:.45;

        transform:
            translate(-50%,-50%)
            scale(.9);

    }

    50%{

        opacity:.85;

        transform:
            translate(-50%,-50%)
            scale(1.08);

    }

}


/*========================================================
    SPARKLE ANIMATION
========================================================*/

@keyframes sparkleFloat{

    0%,
    100%{

        opacity:.15;

        transform:
            translate3d(0,0,0)
            scale(.65);

    }

    25%{

        opacity:.55;

    }

    50%{

        opacity:1;

        transform:
            translate3d(8px,-12px,0)
            scale(1.15);

    }

    75%{

        opacity:.35;

    }

}


/*========================================================
    DESKTOP — EXTRA DEPTH
========================================================*/

@media (min-width:1200px){

    .hero-glow-one{

        opacity:.72;

    }


    .hero-glow-two{

        opacity:.68;

    }


    .hero-sparkle{

        filter:
            drop-shadow(
                0 0 5px
                rgba(255,255,255,.45)
            );

    }

}


/*========================================================
    TABLET
========================================================*/

@media (max-width:900px){

    .contact-hero{

        min-height:760px;

    }


    .hero-glow-one{

        width:400px;

        height:400px;

        left:-220px;

    }


    .hero-glow-two{

        width:460px;

        height:460px;

        right:-250px;

        bottom:-160px;

    }


    .hero-glow-three{

        width:330px;

        height:330px;

    }


    .hero-core-glow{

        width:500px;

        height:300px;

    }


    .hero-sparkle{

        opacity:.35;

    }

}


/*========================================================
    MOBILE
========================================================*/

@media (max-width:600px){

    .contact-hero{

        min-height:720px;

    }


    .hero-glow-one{

        width:320px;

        height:320px;

        left:-190px;

        top:8%;

        filter:blur(65px);

    }


    .hero-glow-two{

        width:350px;

        height:350px;

        right:-190px;

        bottom:-110px;

        filter:blur(65px);

    }


    .hero-glow-three{

        width:280px;

        height:280px;

        top:-190px;

        filter:blur(75px);

    }


    .hero-core-glow{

        width:360px;

        height:230px;

        filter:blur(40px);

    }


    /* Keep only a few sparkles visually active */

    .sparkle-2,
    .sparkle-5,
    .sparkle-7,
    .sparkle-8{

        display:none;

    }


    .hero-sparkle{

        opacity:.3;

    }

}


/*========================================================
    REDUCED MOTION
========================================================*/

@media (prefers-reduced-motion:reduce){

    .hero-glow,
    .hero-core-glow,
    .hero-sparkle{

        animation:none;

    }

}


/*========================================================
    HERO GRID
========================================================*/

.contact-hero-grid{

    position:absolute;

    inset:0;

    background-image:

        linear-gradient(
            rgba(255,255,255,.025) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(255,255,255,.025) 1px,
            transparent 1px
        );

    background-size:
        70px 70px;

    mask-image:
        linear-gradient(
            to bottom,
            transparent,
            black 25%,
            black 70%,
            transparent
        );

    opacity:.35;

    pointer-events:none;

    z-index:-4;

}


/*========================================================
    HERO GLOW
========================================================*/

.contact-hero-glow{

    position:absolute;

    border-radius:50%;

    pointer-events:none;

    filter:blur(15px);

    z-index:-3;

}


.contact-hero-glow-left{

    width:700px;
    height:700px;

    left:-420px;
    top:10%;

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.16),
            transparent 68%
        );

}


.contact-hero-glow-right{

    width:600px;
    height:600px;

    right:-350px;
    bottom:-10%;

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.11),
            transparent 68%
        );

}


/*========================================================
    HERO ORBITS
========================================================*/

.contact-hero-orbit{

    position:absolute;

    border:1px solid rgba(211,21,24,.10);

    border-radius:50%;

    pointer-events:none;

    z-index:-2;

}


.contact-hero-orbit-one{

    width:620px;
    height:620px;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%)
        rotate(-18deg);

    animation:
        contactOrbitOne 16s linear infinite;

}


.contact-hero-orbit-two{

    width:820px;
    height:360px;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%)
        rotate(28deg);

    border-color:rgba(255,255,255,.045);

    animation:
        contactOrbitTwo 22s linear infinite;

}


@keyframes contactOrbitOne{

    from{

        transform:
            translate(-50%,-50%)
            rotate(-18deg);

    }

    to{

        transform:
            translate(-50%,-50%)
            rotate(342deg);

    }

}


@keyframes contactOrbitTwo{

    from{

        transform:
            translate(-50%,-50%)
            rotate(28deg);

    }

    to{

        transform:
            translate(-50%,-50%)
            rotate(-332deg);

    }

}


/*========================================================
    HUGE BACKGROUND TEXT
========================================================*/

.contact-hero-bg-text{

    position:absolute;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%);

    width:100%;

    text-align:center;

    font-family:'Bebas Neue',sans-serif;

    font-size:
        clamp(
            130px,
            23vw,
            350px
        );

    line-height:.8;

    letter-spacing:
        clamp(
            8px,
            1.5vw,
            25px
        );

    color:#fff;

    opacity:.018;

    white-space:nowrap;

    user-select:none;

    pointer-events:none;

    z-index:-3;

}


/*========================================================
    HERO CONTAINER
========================================================*/

.contact-hero-container{

    position:relative;

    z-index:3;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

}


/*========================================================
    HERO CONTENT
========================================================*/

.contact-hero-content{

    width:100%;

    max-width:1000px;

    margin:0 auto;
    margin-top: 5%;

    display:flex;

    flex-direction:column;

    align-items:center;

}


/*========================================================
    EYEBROW
========================================================*/

.contact-hero-eyebrow{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:9px 17px;

    margin-bottom:30px;

    border:1px solid
        rgba(211,21,24,.35);

    border-radius:50px;

    background:
        rgba(211,21,24,.045);

    color:var(--primary-light);

    font-size:.7rem;

    font-weight:700;

    letter-spacing:2.7px;

    text-transform:uppercase;

    box-shadow:
        0 10px 35px
        rgba(211,21,24,.04);

}


/*========================================================
    EYEBROW DOT
========================================================*/

.contact-hero-dot{

    position:relative;

    width:7px;
    height:7px;

    border-radius:50%;

    background:var(--primary);

    box-shadow:
        0 0 0 4px
        rgba(211,21,24,.08),
        0 0 18px
        rgba(211,21,24,.7);

}


.contact-hero-dot::after{

    content:"";

    position:absolute;

    inset:-5px;

    border:1px solid
        rgba(211,21,24,.4);

    border-radius:50%;

    animation:
        contactPulse 2s ease-out infinite;

}


@keyframes contactPulse{

    0%{

        transform:scale(.65);

        opacity:.8;

    }

    100%{

        transform:scale(1.8);

        opacity:0;

    }

}


/*========================================================
    HERO TITLE
========================================================*/

.contact-hero-title{

    max-width:1000px;

    margin:0 auto;

    color:#fff;

    font-size:
        clamp(
            43.5px,
            6vw,
            81px
        );

    line-height:.92;

    letter-spacing:
        clamp(
            -3px,
            -.45vw,
            -6px
        );

    font-weight:700;

}


.contact-hero-title span{

    display:inline-block;

    color:var(--primary);

    position:relative;

}


/* subtle red underline */

.contact-hero-title span::after{

    content:"";

    position:absolute;

    left:5%;

    right:5%;

    bottom:-9px;

    height:2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--primary),
            transparent
        );

    opacity:.6;

}


/*========================================================
    HERO DESCRIPTION
========================================================*/

.contact-hero-description{

    max-width:900px;

    margin:32px auto 0;

    color:white;

    font-size:1rem;

    line-height:1.9;

    letter-spacing:.05px;

}


/*========================================================
    HERO ACTIONS
========================================================*/

.contact-hero-actions{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:14px;

    margin-top:40px;

    flex-wrap:wrap;

}


/*========================================================
    HERO PRIMARY
========================================================*/

.contact-hero-primary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:18px;

    min-width:205px;

    padding:16px 23px;

    border-radius:60px;

    background:var(--primary);

    border:1px solid var(--primary);

    color:#fff;

    font-size:.76rem;

    font-weight:700;

    letter-spacing:.7px;

    text-transform:uppercase;

    box-shadow:
        0 20px 45px
        rgba(211,21,24,.18);

    transition:
        transform .4s ease,
        background .4s ease,
        box-shadow .4s ease;

}


.contact-hero-primary:hover{

    transform:translateY(-5px);

    background:var(--primary-light);

    box-shadow:
        0 25px 55px
        rgba(211,21,24,.32);

}


/*========================================================
    HERO SECONDARY
========================================================*/

.contact-hero-secondary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:18px;

    min-width:190px;

    padding:16px 23px;

    border:1px solid
        rgba(255,255,255,.11);

    border-radius:60px;

    background:
        rgba(255,255,255,.025);

    color:#c7c7c7;

    font-size:.76rem;

    font-weight:600;

    letter-spacing:.7px;

    text-transform:uppercase;

    backdrop-filter:blur(12px);

    transition:
        transform .4s ease,
        border-color .4s ease,
        background .4s ease,
        color .4s ease;

}


.contact-hero-secondary:hover{

    transform:translateY(-5px);

    border-color:
        rgba(255,255,255,.25);

    background:
        rgba(255,255,255,.055);

    color:#fff;

}


/*========================================================
    HERO ARROW
========================================================*/

.contact-hero-action-arrow{

    font-size:1rem;

    transition:
        transform .35s ease;

}


.contact-hero-primary:hover
.contact-hero-action-arrow{

    transform:translateX(5px);

}


.contact-hero-secondary:hover
.contact-hero-action-arrow{

    transform:translateY(4px);

}


/*========================================================
    HERO TRUST LINE
========================================================*/

.contact-hero-trust{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:15px;

    margin-top:48px;

    color:#565656;

    font-size:.59rem;

    font-weight:600;

    letter-spacing:2.2px;

}


.contact-hero-line{

    width:45px;

    height:1px;

    background:
        rgba(211,21,24,.45);

}


/*========================================================
    SCROLL INDICATOR
========================================================*/

.contact-hero-scroll{

    position:absolute;

    bottom:30px;

    left:50%;

    transform:translateX(-50%);

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:10px;

    color:#555;

    font-size:.56rem;

    font-weight:600;

    letter-spacing:2px;

    text-transform:uppercase;

    transition:
        color .3s ease;

}


.contact-hero-scroll:hover{

    color:var(--primary);

}


.contact-scroll-line{

    position:relative;

    width:1px;

    height:38px;

    background:
        linear-gradient(
            to bottom,
            var(--primary),
            transparent
        );

    overflow:hidden;

}


.contact-scroll-line::after{

    content:"";

    position:absolute;

    top:-100%;

    left:0;

    width:1px;

    height:50%;

    background:#fff;

    animation:
        contactScroll 2s ease-in-out infinite;

}


@keyframes contactScroll{

    0%{

        top:-50%;

    }

    100%{

        top:100%;

    }

}


/*========================================================
    CONTACT DETAILS
========================================================*/

.contact-details{

    position:relative;

    padding:130px 0 150px;

    background:#050505;

    overflow:hidden;

    border-top:
        1px solid
        rgba(255,255,255,.045);

}


/*========================================================
    DETAILS GLOW
========================================================*/

.contact-details-glow{

    position:absolute;

    width:900px;

    height:900px;

    left:-500px;

    top:10%;

    background:
        radial-gradient(
            circle,
            rgba(211,21,24,.08),
            transparent 70%
        );

    pointer-events:none;

}


/*========================================================
    DETAILS CONTAINER
========================================================*/

.contact-details-container{

    position:relative;

    z-index:2;

    display:grid;

    grid-template-columns:
        30% 70%;

    align-items:stretch;

    min-height:560px;

}


/*========================================================
    CONTACT INFORMATION
========================================================*/

.contact-information{

    display:flex;

    flex-direction:column;

    justify-content:center;

    padding:
        45px 60px 45px 0;

    border-right:
        1px solid
        rgba(255,255,255,.07);

}


/*========================================================
    DETAILS HEADING
========================================================*/

.contact-details-heading{

    margin-bottom:45px;

}


.contact-details-eyebrow{

    display:block;

    margin-bottom:16px;

    color:var(--primary);

    font-size:.65rem;

    font-weight:700;

    letter-spacing:2.5px;

}


.contact-details-heading h2{

    color:#fff;

    font-size:
        clamp(
            34px,
            3.2vw,
            51px
        );

    line-height:1.02;

    letter-spacing:-1.8px;

    font-weight:700;

}


.contact-details-heading h2 span{

    color:var(--primary);

}


.contact-details-heading p{

    max-width:390px;

    margin-top:22px;

    color:white;

    font-size:.88rem;

    line-height:1.85;

}


/*========================================================
    CONTACT INFO LIST
========================================================*/

.contact-info-list{

    display:flex;

    flex-direction:column;

}


/*========================================================
    INFO ITEM
========================================================*/

.contact-info-item{

    position:relative;

    display:grid;

    grid-template-columns:
        42px 1fr 20px;

    align-items:center;

    gap:15px;

    padding:19px 0;

    border-top:
        1px solid
        rgba(255,255,255,.065);

    transition:
        padding .35s ease,
        border-color .35s ease;

}


.contact-info-item:last-child{

    border-bottom:
        1px solid
        rgba(255,255,255,.065);

}


.contact-info-item:hover{

    padding-left:8px;

    border-color:
        rgba(211,21,24,.3);

}


/*========================================================
    INFO NUMBER
========================================================*/

.contact-info-icon{

    width:34px;
    height:34px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        1px solid
        rgba(211,21,24,.22);

    border-radius:50%;

    background:
        rgba(211,21,24,.035);

}


.contact-info-icon span{

    color:#888;

    font-size:.57rem;

    font-weight:700;

    letter-spacing:.5px;

}


.contact-info-item:hover
.contact-info-icon{

    background:
        rgba(211,21,24,.12);

    border-color:
        rgba(211,21,24,.55);

}


.contact-info-item:hover
.contact-info-icon span{

    color:var(--primary-light);

}


/*========================================================
    INFO CONTENT
========================================================*/

.contact-info-content{

    display:flex;

    flex-direction:column;

    gap:5px;

    min-width:0;

}


.contact-info-label{

    color:#5e5e5e;

    font-size:.59rem;

    font-weight:700;

    letter-spacing:1.8px;

}


.contact-info-value{

    color:#c7c7c7;

    font-size:.82rem;

    line-height:1.5;

    word-break:break-word;

    transition:
        color .3s ease;

}


.contact-info-item:hover
.contact-info-value{

    color:#fff;

}


/*========================================================
    INFO ARROW
========================================================*/

.contact-info-arrow{

    color:#555;

    font-size:1rem;

    transition:
        color .3s ease,
        transform .35s ease;

}


.contact-info-item:hover
.contact-info-arrow{

    color:var(--primary);

    transform:
        translate(3px,-3px);

}


/*========================================================
    AVAILABILITY
========================================================*/

.contact-availability{

    display:flex;

    align-items:flex-start;

    gap:11px;

    margin-top:35px;

    padding-top:25px;

    border-top:
        1px solid
        rgba(255,255,255,.05);

}


.availability-dot{

    position:relative;

    flex:0 0 auto;

    width:7px;
    height:7px;

    margin-top:5px;

    border-radius:50%;

    background:#58c77a;

    box-shadow:
        0 0 0 4px
        rgba(88,199,122,.08);

}


.availability-title{

    display:block;

    color:#858585;

    font-size:.58rem;

    font-weight:700;

    letter-spacing:1.5px;

}


.availability-text{

    display:block;

    margin-top:6px;

    color:#555;

    font-size:.68rem;

}


/*========================================================
    MAP WRAPPER
========================================================*/

.contact-map-wrapper{

    min-width:0;

    padding:
        45px 0 45px 45px;

    display:flex;

    flex-direction:column;

}


/*========================================================
    MAP HEADER
========================================================*/

.contact-map-header{

    display:flex;

    align-items:flex-end;

    justify-content:space-between;

    padding-bottom:20px;

}


.contact-map-label{

    display:block;

    margin-bottom:7px;

    color:var(--primary);

    font-size:.61rem;

    font-weight:700;

    letter-spacing:2px;

}


.contact-map-header h3{

    color:#fff;

    font-size:1.7rem;

    font-weight:600;

    letter-spacing:-.5px;

}


.contact-map-index{

    color:#3d3d3d;

    font-size:.7rem;

    font-weight:700;

    letter-spacing:2px;

}


/*========================================================
    MAP
========================================================*/

.contact-map{

    position:relative;

    flex:1;

    min-height:470px;

    overflow:hidden;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius:24px;

    background:#101010;

    box-shadow:
        0 35px 80px
        rgba(0,0,0,.38);

}


/*========================================================
    MAP IFRAME
========================================================*/

.contact-map iframe{
    width:100%;
    height:100%;
    min-height:520px;
    border:0;
    display:block;
}


/*========================================================
    MAP OVERLAY
========================================================*/

.contact-map::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            180deg,
            rgba(5,5,5,.12),
            transparent 35%,
            rgba(5,5,5,.18)
        );

    pointer-events:none;

}


/*========================================================
    MAP LOCATION CARD
========================================================*/

.contact-map-overlay{

    position:absolute;

    right:18px;

    top: 18px;

    display:flex;

    align-items:center;

    gap:13px;

    max-width:
        calc(100% - 44px);

    padding:12px 16px;

    border:
        1px solid
        rgba(255,255,255,.1);

    border-radius:14px;

    background:
        rgba(5,5,5,.82);

    backdrop-filter:blur(15px);

    -webkit-backdrop-filter:blur(15px);

    box-shadow:
        0 15px 35px
        rgba(0,0,0,.35);

    z-index:4;

}


.map-location-marker{

    position:relative;

    width:32px;
    height:32px;

    flex:0 0 auto;

    display:flex;

    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:
        rgba(211,21,24,.13);

    border:
        1px solid
        rgba(211,21,24,.3);

}


.map-location-marker span{

    width:8px;
    height:8px;

    border-radius:50%;

    background:var(--primary);

    box-shadow:
        0 0 15px
        rgba(211,21,24,.8);

}


.map-location-text span{

    display:block;

    margin-bottom:4px;

    color:#777;

    font-size:.54rem;

    font-weight:700;

    letter-spacing:1.5px;

}


.map-location-text strong{

    display:block;

    color:#ddd;

    font-size:.72rem;

    font-weight:500;

}


/*========================================================
    TABLET
========================================================*/

@media (max-width:1100px){

    .contact-hero{

        min-height:850px;

    }


    .contact-hero-title{

        font-size:
            clamp(
                58px,
                8vw,
                90px
            );

    }


    .contact-details-container{

        grid-template-columns:
            1fr;

    }


    .contact-information{

        padding:
            0 0 65px;

        border-right:none;

        border-bottom:
            1px solid
            rgba(255,255,255,.07);

    }


    .contact-details-heading p{

        max-width:600px;

    }


    .contact-info-list{

        max-width:700px;

    }


    .contact-map-wrapper{

        padding:
            65px 0 0;

    }


    .contact-map{

        min-height:500px;

    }


    .contact-map iframe{

        min-height:500px;

    }

}


/*========================================================
    MOBILE
========================================================*/

@media (max-width:768px){

    .contact-hero{

        min-height:
            760px;

        padding:
            125px 0 90px;

    }


    .contact-hero-grid{

        background-size:
            45px 45px;

    }


    .contact-hero-orbit-one{

        width:430px;
        height:430px;

    }


    .contact-hero-orbit-two{

        width:570px;
        height:260px;

    }


    .contact-hero-title{

        font-size:
            clamp(
                48px,
                12vw,
                68px
            );

        line-height:.96;

        letter-spacing:-2.5px;

    }


    .contact-hero-description{

        max-width:570px;

        margin-top:27px;

        font-size:.88rem;

        line-height:1.8;

    }


    .contact-hero-actions{

        width:100%;

        margin-top:32px;

        gap:10px;

    }


    .contact-hero-primary,
    .contact-hero-secondary{

        width:100%;

        max-width:310px;

    }


    .contact-hero-trust{

        gap:9px;

        margin-top:36px;

        font-size:.5rem;

        letter-spacing:1.5px;

    }


    .contact-hero-line{

        width:25px;

    }


    .contact-hero-scroll{

        bottom:20px;

    }


    .contact-details{

        padding:
            90px 0 100px;

    }


    .contact-details-container{

        min-height:auto;

    }


    .contact-information{

        padding-bottom:50px;

    }


    .contact-details-heading{

        margin-bottom:35px;

    }


    .contact-details-heading h2{

        font-size:
            38px;

        letter-spacing:-1.3px;

    }


    .contact-details-heading p{

        font-size:.84rem;

        line-height:1.8;

    }


    .contact-info-item{

        grid-template-columns:
            36px 1fr 18px;

        gap:12px;

        padding:16px 0;

    }


    .contact-info-icon{

        width:30px;
        height:30px;

    }


    .contact-info-value{

        font-size:.77rem;

    }


    .contact-availability{

        margin-top:28px;

        padding-top:22px;

    }


    .contact-map-wrapper{

        padding-top:50px;

    }


    .contact-map-header h3{

        font-size:1.45rem;

    }


    .contact-map{

        min-height:400px;

        border-radius:20px;

    }


    .contact-map iframe{

        min-height:400px;

    }


    .contact-map-overlay{

        right:14px;
        top:14px;

        max-width:
            calc(100% - 28px);

        padding:10px 12px;

    }

}


/*========================================================
    SMALL MOBILE
========================================================*/

@media (max-width:480px){

    .contact-hero{

        min-height:
            700px;

        padding:
            110px 0 80px;

    }


    .contact-hero-eyebrow{

        padding:8px 14px;

        font-size:.61rem;

        letter-spacing:2px;

    }


    .contact-hero-title{

        font-size:
            43px;

        line-height:.99;

        letter-spacing:-1.8px;

    }


    .contact-hero-title span::after{

        bottom:-5px;

    }


    .contact-hero-description{

        font-size:.82rem;

        line-height:1.75;

    }


    .contact-hero-primary,
    .contact-hero-secondary{

        max-width:none;

        padding:15px 18px;

        font-size:.67rem;

    }


    .contact-hero-trust{

        display:none;

    }


    .contact-hero-bg-text{

        font-size:95px;

        letter-spacing:7px;

    }


    .contact-hero-orbit-one{

        width:330px;
        height:330px;

    }


    .contact-hero-orbit-two{

        width:430px;
        height:190px;

    }


    .contact-details{

        padding:
            75px 0 80px;

    }


    .contact-details-heading h2{

        font-size:
            34px;

    }


    .contact-details-heading p{

        font-size:.8rem;

    }


    .contact-info-item{

        grid-template-columns:
            32px 1fr 15px;

        gap:10px;

    }


    .contact-info-icon{

        width:28px;
        height:28px;

    }


    .contact-info-icon span{

        font-size:.5rem;

    }


    .contact-info-label{

        font-size:.53rem;

        letter-spacing:1.4px;

    }


    .contact-info-value{

        font-size:.72rem;

    }


    .contact-info-arrow{

        font-size:.85rem;

    }


    .availability-title{

        font-size:.52rem;

    }


    .availability-text{

        font-size:.62rem;

    }


    .contact-map-wrapper{

        padding-top:42px;

    }


    .contact-map-header{

        padding-bottom:16px;

    }


    .contact-map-header h3{

        font-size:1.3rem;

    }


    .contact-map{

        min-height:340px;

        border-radius:18px;

    }


    .contact-map iframe{

        min-height:340px;

    }


    .map-location-marker{

        width:28px;
        height:28px;

    }


    .map-location-text span{

        font-size:.48rem;

    }


    .map-location-text strong{

        font-size:.64rem;

    }

}


/*========================================================
    REDUCED MOTION
========================================================*/

@media (prefers-reduced-motion:reduce){

    .contact-hero-orbit-one,
    .contact-hero-orbit-two,
    .contact-hero-dot::after,
    .contact-scroll-line::after{

        animation:none;

    }


    .contact-hero-primary,
    .contact-hero-secondary,
    .contact-info-item,
    .contact-map iframe{

        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: white;

    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;
    }

}