/* =========================================================
   VARIABLES
   ========================================================= */
:root{
    --uw-red:#e60012;
    --slate-gray:#f5f5f5;
    --charcoal:#1a1a1a;
    --text-dark:#111;
    --text-mid:#555;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

body{
    font-family:'Inter','Helvetica Neue',Arial,sans-serif;
    background:#fff;
    color:var(--text-dark);
    line-height:1.6;
}

a{
    color:inherit;
    text-decoration:none;
}



a, button {
    cursor: pointer;
    font: inherit;
    border: none;
    background: none;
    text-decoration: none;
}

/* =========================================================
   LAYOUT
   ========================================================= */
.container{
    max-width:1200px;
    margin:0 auto;
    padding:0 1.5rem;
}

section{
    padding:5rem 0;
}

section h2{
    font-size:2.3rem;
    margin-bottom:1rem;
    text-align:center;
}

.section-sub{
    text-align:center;
    color:#666;
    margin-bottom:2.5rem;
}

/* =========================================================
   NAV
   ========================================================= */


nav{
    position:fixed;top:0;left:0;right:0;height:80px;
    display:flex;align-items:center;justify-content:space-between;
    padding:0 1.5rem;z-index:999;
    transition:background .35s ease, box-shadow .35s ease;
}

nav.scrolled{
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(10px);
    box-shadow:0 4px 20px rgba(0,0,0,.08);
}


.logo-img img{
    max-height:40px;
    display:block;
}

.nav-links{
    display:flex;
    align-items:center;
    gap:2rem;
}

.nav-link{
    font-weight:600;
    transition:color .2s ease;
}

.nav-link:hover{
    color:var(--uw-red);
}

.btn-red{
    background:var(--uw-red);
    color:#fff;
    font-weight:600;
    padding:.75rem 1.5rem;
    border-radius:4px;
    transition:opacity .2s ease, transform .2s ease;
}

.btn-red:hover{
    opacity:.92;
    transform:translateY(-1px);
}

.menu-btn{display:none}
#mobileMenu{display:none}

/* =========================================================
   HERO
   (background-image is set inline in HTML)
   ========================================================= */
#hero{
    min-height:100vh;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.28);
}

.hero-content{
    position:relative;
    z-index:2;
    max-width:900px;
}

.hero-logo img{
    max-width:220px;
    margin-bottom:1.5rem;
}

#hero h1{
    font-size:.85rem;
    letter-spacing:3px;
    text-transform:uppercase;
    color:#444;
    margin-bottom:1rem;
}

#hero h2{
    font-size:2.4rem;
    font-weight:800;
    margin-bottom:1rem;
}

#hero p{
    max-width:700px;
    margin:0 auto 2rem;
    color:var(--text-mid);
}

.hero-btns{
    display:flex;
    justify-content:center;
    gap:1rem;
}

.btn-outline{
    border:2px solid #000;
    padding:.75rem 1.5rem;
    font-weight:600;
    border-radius:4px;
    color:#000;
    transition:background .2s ease, color .2s ease, transform .2s ease;
}

.btn-outline:hover{
    background:#000;
    color:#fff;
    transform:translateY(-1px);
}

/* =========================================================
   SERVICES
   ========================================================= */
#services{
    background:var(--slate-gray);
    text-align:center;
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:2rem;
    max-width:900px;
    margin:0 auto;
}

#services {

}

.service{
    background:#fff;
    border-radius:10px;
    padding:2rem;
    box-shadow:0 1px 5px rgba(0,0,0,.05);
    transition:transform .3s, box-shadow .3s;
}

.service:hover{transform:translateY(-4px);box-shadow:0 6px 18px rgba(0,0,0,.08);}

#services .service h3{
    margin-bottom:.5rem;
}

/* =========================================================
   CLIENTS
   ========================================================= */
#clients{
    background:#fff;
    text-align:center;
    padding:4rem 0;
}

.client-logos{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:2.5rem;
    margin:2.5rem auto 3rem;
    max-width:1000px;
}

.client-logos img{
    max-height:42px;
    max-width:160px;
    object-fit:contain;
}

.clients-cta{
    display:flex;
    justify-content:center;
}

/* =========================================================
   ABOUT / WHO WE ARE
   ========================================================= */
#about{
    background:#fff;
}

#about .about-grid{
    display:grid;
    grid-template-columns:1fr 520px;
    gap:4.5rem;
    align-items:start;
    max-width:1200px;
    margin:0 auto;
}

/* Left column */
#about .about-grid > div:first-child{
    max-width:620px;
}

.eyebrow{
    display:block;
    font-size:.85rem;
    font-weight:700;
    text-transform:uppercase;
    color:var(--uw-red);
    margin-bottom:.75rem;
}

#about h2{
    text-align:left;
    font-size:3rem;
    line-height:1.1;
    margin-bottom:1rem;
}

#about p{
    color:#333;
    margin-bottom:1.5rem;
}

.about-points{
    margin-top:1rem;
}

.about-points li{
    list-style:none;
    margin-bottom:.6rem;
    font-weight:500;
}

/* Right column cards */
#about .about-grid > div:last-child{
    width:520px;
    justify-self:end;
    display:flex;
    flex-direction:column;
    gap:1.6rem;
}

#about .service h3{
    font-size:1.1rem;
    margin-bottom:.35rem;
}

#about .service p{
    font-size:.95rem;
    color:#666;
}

/* kill <br> spacing */
#about br{display:none}

/* responsive */
@media (max-width:980px){
    #about .about-grid{
        grid-template-columns:1fr;
    }
    #about .about-grid > div:last-child{
        width:100%;
        justify-self:start;
    }
}

/* =========================================================
   CONTACT CTA
   ========================================================= */
#contact{
    background:var(--charcoal);
    color:#fff;
    text-align:center;
}

#contact p{
    color:#ccc;
    margin:1rem auto 2rem;
    max-width:600px;
}

/* =========================================================
   FOOTER – FINAL FIXED
   ========================================================= */

.site-footer{
    background:var(--charcoal);
    color:#fff;
    padding:4rem 1.5rem 3rem;
}

/* top row */
.site-footer .footer-top{
    max-width:1200px;
    margin:0 auto 2.5rem;
    position:relative;
}

/* centered logo + tagline */
.site-footer .footer-brand{
    text-align:center;
}

.site-footer .logo-img img{
    max-height:48px;
    margin:0 auto;
}

.site-footer .footer-tagline{
    margin-top:1rem;
    font-size:1rem;        /* NOT calm */
    font-weight:400;
    color:#e5e5e5;         /* matches your reference */
}

/* contact block – FAR RIGHT */
.site-footer .footer-contact{
    position:absolute;
    right:-40px;
    top:50%;
    transform:translateY(-50%);
    margin-top:-205px;   /* ⬅️ THIS is the key */
    display:flex;
    flex-direction:column;
    gap:0.6rem;
}

.site-footer .contact-item{
    display:flex;
    align-items:center;
    gap:0.6rem;
    color:#d1d1d1;
    font-size:1.05rem;
    font-weight:500;
    text-decoration:none;
}

.site-footer .contact-item svg{
    width:16px;
    height:16px;
    fill:#bfbfbf;
}

/* divider */
.site-footer hr{
    border:none;
    border-top:1px solid rgba(255,255,255,0.12);
    margin:2.5rem auto;
    max-width:1200px;
}

/* legal calm */
.site-footer .footer-legal{
    max-width:900px;
    margin:0 auto;
    text-align:center;
    font-size:0.78rem;
    color:#999;
    line-height:1.6;
}

/* mobile */
@media (max-width:768px){
    .site-footer .footer-contact{
        position:static;
        transform:none;
        margin-top:2rem;
        align-items:center;
    }
}

/* MODAL ------------------------------------------------ */
dialog{
    width:100%;
    max-width:520px;
    border:none;
    padding:2rem;
    border-radius:12px;
}
dialog::backdrop{background:rgba(0,0,0,.7)}
dialog[open]{animation:modalIn .35s ease forwards}
@keyframes modalIn{
    from{opacity:0;transform:translateY(12px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

/* CONTACT MODAL CONTENT ----------------------------------------- */
.contact-logo img{
    max-width:160px;
    margin:0 auto 1rem;
    display:block;
}
.contact-intro{
    color:#555;
    font-size:.95rem;
    margin-bottom:1.5rem;
    text-align:center;
}
input,textarea{
    width:100%;
    padding:.75rem;
    margin-bottom:.85rem;
    border:1px solid #ccc;
    border-radius:8px;
}
textarea{min-height:120px;resize:vertical}
.error{color:var(--uw-red);font-size:.9rem;margin-top:.2rem}

/* BUTTON LOADING --------------------------------------- */
.btn-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.6rem;
    width:100%;
}
.btn-spinner{
    width:16px;
    height:16px;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    border-radius:50%;
    animation:spin .8s linear infinite;
    display:none;
}
.btn-submit.loading .btn-spinner{display:inline-block}
.btn-submit:disabled{opacity:.85;cursor:not-allowed}
@keyframes spin{to{transform:rotate(360deg)}}

/* SUCCESS STATE ---------------------------------------- */
.contact-success{text-align:center;animation:fadeUp .4s ease forwards}
@keyframes fadeUp{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:translateY(0)}
}

/* DIRECT CONTACT (MODAL) ------------------------------- */
.contact-direct{
    margin-top:1.2rem;
    padding-top:1rem;
    border-top:1px solid #eee;
    text-align:center;
}
.contact-direct p{
    font-size:.85rem;
    color:#666;
    margin-bottom:.4rem;
}
.contact-direct a,
.contact-phone{font-weight:700;color:#000}


/* =========================================================
   CONTACT MODAL
   ========================================================= */
/*
dialog#contactModal{
    border:none;
    border-radius:16px;
    padding:2.5rem;
    max-width:460px;
    width:calc(100% - 2rem);
    box-shadow:0 30px 80px rgba(0,0,0,.25);
}

dialog::backdrop{
    background:rgba(0,0,0,.65);
}

#contactModal .contact-logo{
    display:flex;
    justify-content:center;
    margin-bottom:1.5rem;
}

#contactModal .contact-logo img{
    max-width:160px;
}

#contactModal .contact-intro{
    text-align:center;
    color:#555;
    margin-bottom:1.75rem;
}

#contactModal form{
    display:flex;
    flex-direction:column;
}

#contactModal input,
#contactModal textarea{
    width:100%;
    padding:.9rem 1rem;
    border-radius:10px;
    border:1px solid #ddd;
    font-size:.95rem;
    margin-bottom:.9rem;
    font-family:inherit;
}

#contactModal textarea{
    min-height:120px;
    resize:vertical;
}

#contactModal input:focus,
#contactModal textarea:focus{
    outline:none;
    border-color:var(--uw-red);
    box-shadow:0 0 0 3px rgba(230,0,18,.15);
}

#contactModal .btn-submit{
    margin-top:.75rem;
    padding:.9rem 1.5rem;
    font-size:1rem;
    font-weight:600;
    border-radius:10px;
}

#contactModal .btn-spinner{
    display:none;
}

dialog[open]{
    animation:modalIn .35s ease forwards;
}

@keyframes modalIn{
    from{opacity:0;transform:translateY(16px) scale(.96)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
*/

