/* ==========================================================
   BRASS ENGINEERS
   style.css
   ========================================================== */

:root{

    --navy:#0b1f3a;
    --navy-light:#16345d;
    --brass:#b08d57;
    --brass-light:#d6bc8a;
    --white:#ffffff;
    --background:#f5f7f9;
    --text:#25303b;
    --muted:#65717d;
    --border:#dfe5ea;

    --max-width:1180px;

}


/* ==========================================================
   RESET
   ========================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    font-family:Arial,Helvetica,sans-serif;
    color:var(--text);
    background:var(--white);
    line-height:1.65;

}

img{

    display:block;
    max-width:100%;

}

a{

    text-decoration:none;
    color:inherit;

}

ul{

    padding-left:20px;

}

ol{

    padding-left:20px;

}

.container{

    width:min(calc(100% - 40px),var(--max-width));
    margin:auto;

}


/* ===========================
HEADER
=========================== */

header{
 position:sticky;
 top:0;
 z-index:1000;

 background:#0b1f3a;
 border-bottom:1px solid rgba(255,255,255,.10);
}

.header-inner{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:24px;

 width:100%;
 max-width:none;
 margin:0;
 padding:10px 20px;
}

.brand{
 display:flex;
 align-items:center;
 text-decoration:none;

 flex-shrink:0;
}

.logo{
 display:block;

 height:96px;
 width:auto;

 max-width:none;
}

nav{
 display:flex;
 gap:6px;
 align-items:center;
 margin-left:auto;
}

nav a{
 display:flex;
 align-items:center;
 justify-content:center;
 min-height:40px;
 padding:8px 10px;
 border:1px solid rgba(255,255,255,.18);
 border-radius:8px;
 background:var(--navy-light);
 color:#fff;
 text-decoration:none;
 font-weight:600;
 font-size:.82rem;
 line-height:1.2;
 text-align:center;
 white-space:nowrap;
 transition:background .2s ease,border-color .2s ease,color .2s ease;
}

nav a:hover,
nav a:focus-visible{
 background:#21456f;
 border-color:rgba(255,255,255,.42);
}

nav a[href="why-brass-engineers.html"]{
 border-color:var(--brass);
 color:var(--brass-light);
}

.menu-toggle{
 display:none;
 width:46px;
 height:42px;
 padding:9px;
 border:1px solid rgba(255,255,255,.35);
 border-radius:4px;
 background:transparent;
 cursor:pointer;
}

.menu-toggle span{
 display:block;
 width:100%;
 height:2px;
 margin:4px 0;
 background:white;
 transition:transform .2s ease,opacity .2s ease;
}

.menu-toggle.is-open span:nth-child(1){
 transform:translateY(6px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2){
 opacity:0;
}

.menu-toggle.is-open span:nth-child(3){
 transform:translateY(-6px) rotate(-45deg);
}

.nav-button{
 padding:10px 16px;
 border-color:var(--brass);
 border-radius:8px;
 background:var(--brass);
 color:#111;
}

.nav-button:hover{
 background:var(--brass-light);
}

/* ==========================================================
   HERO
   ========================================================== */

.hero{

    background:
    linear-gradient(rgba(11,31,58,.93),rgba(11,31,58,.93));

    color:white;

    padding:120px 0;

}

.hero-content{

    max-width:760px;

}

.eyebrow{

    color:var(--brass-light);

    font-size:.9rem;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:20px;

    font-weight:bold;

}

.hero h1{

    font-size:clamp(2.4rem,5vw,5rem);

    line-height:1.05;

    margin-bottom:25px;

}

.hero-subtitle{

    font-size:1.2rem;

    color:#d7e0ea;

    margin-bottom:40px;

}

.hero-actions{

    display:flex;

    flex-wrap:wrap;

    gap:15px;

}

.button{

    display:inline-block;

    padding:15px 26px;

    border-radius:4px;

    font-weight:bold;

}

.button-primary{

    background:var(--brass);

    color:#111;

}

.button-primary:hover{

    background:var(--brass-light);

}

.button-secondary{

    border:1px solid white;

    color:white;

}

.button-secondary:hover{

    background:rgba(255,255,255,.12);

}


/* ==========================================================
   CAPABILITY STRIP
   ========================================================== */

.capability-strip{

    background:var(--navy-light);

    padding:0;

}

.capability-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

}

.capability-item{

    color:white;

    text-align:center;

    padding:24px;

    font-weight:bold;

    border-right:1px solid rgba(255,255,255,.12);

}

.capability-item:last-child{

    border-right:none;

}


/* ==========================================================
   SECTIONS
   ========================================================== */

section{

    padding:90px 0;

}

.section-heading{

    max-width:760px;

    margin-bottom:45px;

}

.section-heading h2{

    font-size:clamp(2rem,4vw,3rem);

    color:var(--navy);

    margin-bottom:20px;

}

.section-heading p{

    color:var(--muted);

}

.welcome-copy p{

    color:var(--muted);

    margin-bottom:18px;

}

.welcome-copy p:last-child{

    margin-bottom:0;

}

.about-panel p{

    color:#d7e0ea;

}

.about-panel h3:not(:first-child){

    margin-top:30px;

}

.home-cta{

    background:var(--navy-light);

    color:white;

}

.home-cta .section-heading{

    margin-bottom:30px;

}

.home-cta .section-heading h2,
.home-cta .section-heading p{

    color:white;

}


/* ==========================================================
   SERVICES
   ========================================================== */

.services{

    background:var(--background);

}

.service-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

}

.service-card{

    background:white;

    border-top:4px solid var(--brass);

    padding:32px;

    box-shadow:0 10px 28px rgba(0,0,0,.08);

}

.service-number{

    color:var(--brass);

    font-weight:bold;

    letter-spacing:2px;

}

.service-card h3{

    color:var(--navy);

    margin:15px 0;

}

.service-card h2{

    color:var(--navy);

    margin-bottom:15px;

    font-size:1.45rem;

}

.service-card p{

    color:var(--muted);

}

.service-card li{

    margin:8px 0;

}


/* ==========================================================
   ABOUT
   ========================================================== */

.about-grid{

    display:grid;

    grid-template-columns:1.2fr .8fr;

    gap:60px;

    align-items:center;

}

.principles{

    display:grid;

    gap:20px;

}

.principle{

    display:grid;

    grid-template-columns:45px 1fr;

    gap:18px;

}

.principle-icon{

    width:40px;
    height:40px;

    border-radius:50%;

    display:grid;
    place-items:center;

    background:rgba(176,141,87,.18);

    color:var(--brass);

    font-weight:bold;

}

.about-panel{

    background:var(--navy);

    color:white;

    padding:40px;

    border-left:6px solid var(--brass);

}

.about-panel h3{

    margin-bottom:20px;

}

.about-panel li{

    margin:10px 0;

}

.services .about-panel{

    margin-top:45px;

}


/* ==========================================================
   CONTACT
   ========================================================== */

.contact{

    background:var(--navy);

    color:white;

}

.contact-grid{

    display:grid;

    grid-template-columns:.8fr 1.2fr;

    gap:60px;

}

.contact-form{

    background:white;

    color:var(--text);

    padding:35px;

    border-top:5px solid var(--brass);

}

.contact-form h2,
.contact-form h3{

    color:var(--navy);

    margin-bottom:25px;

}

.contact-row{

    margin:20px 0;

}

.contact-label{

    display:block;

    font-size:.8rem;

    color:var(--muted);

    text-transform:uppercase;

    letter-spacing:1px;

}

.contact-email{

    display:block;

    margin-top:5px;

    font-weight:bold;

    color:var(--navy);

    overflow-wrap:anywhere;

}

.form-grid{

    display:grid;

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

    gap:20px;

}

.form-field{

    display:grid;

    gap:7px;

}

.form-field-full{

    grid-column:1 / -1;

}

.form-field label{

    color:var(--navy);

    font-weight:bold;

}

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

    width:100%;

    padding:12px 14px;

    border:1px solid #bac5cf;

    border-radius:4px;

    background:white;

    color:var(--text);

    font:inherit;

}

.form-field textarea{

    resize:vertical;

}

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

    outline:3px solid rgba(176,141,87,.28);

    border-color:var(--brass);

}

.form-trap{

    position:absolute;

    left:-10000px;

    width:1px;

    height:1px;

    overflow:hidden;

}

.cf-turnstile{

    margin:24px 0;

}

.form-note{

    margin-top:14px;

    color:var(--muted);

    font-size:.88rem;

}

.form-status:empty{

    display:none;

}

.form-status{

    margin-bottom:22px;

    padding:12px 14px;

    border-radius:4px;

}

.form-status-success{

    background:#e6f5ec;

    color:#165d34;

}

.form-status-error{

    background:#fdeaea;

    color:#8b1e1e;

}

.contact .button{

    margin-top:25px;

}


/* ==========================================================
   FOOTER
   ========================================================== */

footer{

    background:#07172b;

    color:#b8c4d0;

    padding:25px 0;

}

.footer-inner{

    display:flex;

    justify-content:space-between;

    flex-wrap:wrap;

    gap:20px;

}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width:1400px){


    .menu-toggle{

        display:block;

    }

    nav{

        display:none;

        position:absolute;

        top:100%;

        left:0;

        right:0;

        width:auto;

        padding:14px 20px 20px;

        flex-direction:column;

        align-items:stretch;

        gap:4px;

        background:var(--navy);

        border-top:1px solid rgba(255,255,255,.10);

        box-shadow:0 14px 24px rgba(0,0,0,.18);

    }

    nav.nav-open{

        display:flex;

    }

    nav a{

        min-height:0;

        padding:11px 14px;

        font-size:1rem;

        white-space:normal;

    }

    nav .nav-button{

        margin-top:6px;

        padding:11px 14px;

        text-align:center;

    }

    .service-grid,
    .about-grid,
    .contact-grid{

        grid-template-columns:1fr;

    }

    .capability-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:600px){

    .logo{

        height:76px;

    }

    .form-grid{

        grid-template-columns:1fr;

    }

    .form-field-full{

        grid-column:auto;

    }

    .container{

        width:min(calc(100% - 28px),var(--max-width));

    }

    .hero{

        padding:80px 0;

    }

    section{

        padding:70px 0;

    }

    .capability-grid{

        grid-template-columns:1fr;

    }

    .capability-item{

        border-right:none;
        border-bottom:1px solid rgba(255,255,255,.12);

    }

}
