:root{
  --navy:#1B1F4B;
  --violet:#4B2E83;
  --grad: linear-gradient(120deg, var(--navy), var(--violet));
  --ink:#17161C;
  --slate:#615E6D;
  --paper:#FFFFFF;
  --offwhite:#F5F4F8;
  --gold:#C9A227;
  --stone1:#EFEAE0;
  --stone2:#D8CFBE;
  --stone3:#B9A98A;
  --line: rgba(23,22,28,0.11);
  --display:'Space Grotesk', sans-serif;
  --body:'Inter', -apple-system, sans-serif;
  --mono:'IBM Plex Mono', monospace;
}

body{background:var(--offwhite); color:var(--ink); font-family:var(--body); line-height:1.6; -webkit-font-smoothing:antialiased;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){.wrap{padding:0 20px;}}
.skip-link{position:absolute; left:-999px; top:0; background:var(--navy); color:#fff; padding:12px 18px; z-index:999;}
.skip-link:focus{left:12px; top:12px;}

/* NAV */
header.nav{position:sticky; top:0; z-index:60; background:rgba(245,244,248,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1200px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:10px;}
.logo-mark{width:30px; height:30px; border-radius:7px; background:var(--grad); position:relative; flex:none;}
.logo-mark::after{content:''; position:absolute; left:9px; top:6px; width:12px; height:18px; border-left:2px solid #fff; border-bottom:2px solid #fff; border-radius:0 0 0 3px; transform:rotate(-8deg);}
.logo-word{font-family:var(--display); font-weight:700; font-size:20px; letter-spacing:0.01em;}
.logo-sub{font-family:var(--mono); font-size:9px; letter-spacing:0.08em; color:var(--slate); text-transform:uppercase; margin-top:1px;}
nav.links, .primary-menu{display:flex; align-items:center; gap:30px; font-size:14px; font-weight:500; list-style:none; margin:0; padding:0;}
nav.links > a, .primary-menu > li > a{opacity:0.75; transition:opacity .15s; padding:8px 0; text-decoration:none; color:var(--ink);}
nav.links > a:hover, nav.links > a:focus{opacity:1;}
.has-dropdown, .primary-menu li.menu-item-has-children{position:relative;}
.dropdown, .primary-menu .sub-menu{position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:10px; min-width:230px; box-shadow:0 20px 40px rgba(27,31,75,0.14); opacity:0; visibility:hidden; list-style:none; transition:opacity .15s, visibility .15s;}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown,
.primary-menu li.menu-item-has-children:hover .sub-menu{opacity:1; visibility:visible;}
.dropdown a, .primary-menu .sub-menu a{display:block; padding:11px 14px; border-radius:4px; font-size:13.5px; opacity:1; color:var(--ink);}
.dropdown a:hover, .primary-menu .sub-menu a:hover{background:var(--offwhite);}
.dropdown small{display:block; color:var(--slate); font-size:11.5px; margin-top:2px;}
@media (max-width:960px){nav.links, .primary-menu{display:none;}}
.nav-cta{font-size:13.5px; font-weight:600; padding:11px 22px; border-radius:3px; background:var(--grad); color:#fff; flex:none; text-decoration:none;}
/* ============================
   MOBILE HAMBURGER NAV
   ============================ */

.hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 5px;
    width: 38px;
    height: 38px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    position: relative;
    z-index: 100;
}

.hamburger span {
    display: block;
    width: 26px;
    height: 2px;
    background: var(--ink);
    border-radius: 2px;
    transition: all .25s ease;
}

.hamburger span:nth-child(2) {
    width: 19px;
}

/* Mobile */
@media (max-width: 960px) {

    .hamburger {
        display: flex !important;
    }

    /* Hide desktop navigation */
    header.nav nav.links {
        display: block !important;
        position: fixed;
        top: 0;
        right: 0;
        width: min(320px, 86vw);
        height: 100vh;
        background: var(--paper);
        padding: 100px 28px 40px;
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform .3s ease;
        z-index: 90;
        box-shadow: -20px 0 50px rgba(0,0,0,.15);
    }

    /* The WordPress UL */
    header.nav nav.links ul.primary-menu {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    /* Open menu */
    body.nav-open header.nav nav.links {
        transform: translateX(0);
    }

    /* Mobile links */
    header.nav nav.links ul.primary-menu > li > a {
        display: flex;
        width: 100%;
        padding: 15px 0;
        border-bottom: 1px solid var(--line);
        color: var(--ink);
        opacity: 1;
    }

    /* Scrim */
    .nav-scrim {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(23,22,28,.38);
        opacity: 0;
        visibility: hidden;
        transition: opacity .3s ease;
        z-index: 80;
    }

    body.nav-open .nav-scrim {
        opacity: 1;
        visibility: visible;
    }

    /* Hamburger → X */
    body.nav-open .hamburger span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    body.nav-open .hamburger span:nth-child(2) {
        opacity: 0;
    }

    body.nav-open .hamburger span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    body.nav-open {
        overflow: hidden;
    }
}

/* Hide hamburger on desktop */
@media (min-width: 961px) {
    .hamburger {
        display: none !important;
    }
}
/* HERO */
.hero{position:relative; padding:170px 0 120px; overflow:hidden; isolation:isolate;}
.hero-slider{position:absolute; inset:0; z-index:-1;}
.hero-slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.4s ease;}
.hero-slide.active{opacity:1;}
.hero-content{position:relative; max-width:680px;}
.eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--violet); margin-bottom:20px; display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--violet);}
h1.hero-head{font-family:var(--display); font-weight:700; font-size:clamp(32px,4.2vw,52px); line-height:1.1; letter-spacing:-0.01em; margin-bottom:22px;}
p.hero-sub{font-size:17px; color:var(--slate); max-width:480px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{background:var(--grad); color:#fff; padding:15px 28px; font-size:14.5px; font-weight:600; border-radius:3px; display:inline-block; border:none; cursor:pointer; font-family:var(--body); text-decoration:none;}
.btn-secondary{padding:15px 26px; font-size:14.5px; font-weight:600; border:1px solid var(--line); border-radius:3px; transition:border-color .15s, background .15s; display:inline-block; text-decoration:none; color:var(--ink);}
.btn-secondary:hover{border-color:var(--ink);}
.hero-dots{display:flex; gap:10px; margin-top:48px;}
.hero-dot{width:30px; height:3px; background:rgba(255,255,255,0.35); border:none; cursor:pointer; padding:0; border-radius:2px; transition:background .2s;}
.hero-dot.active{background:#fff;}
.hero-caption{position:absolute; right:32px; bottom:28px; font-family:var(--mono); font-size:11px; color:rgba(255,255,255,0.75); text-transform:uppercase; letter-spacing:0.06em;}
@media (max-width:640px){.hero-caption{display:none;}}

/* TRUST STRIP */
.trust{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:32px 0;}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center;}
@media (max-width:700px){.trust-grid{grid-template-columns:repeat(2,1fr); row-gap:26px;}}
.trust-num{font-family:var(--display); font-size:22px; font-weight:700;}
.trust-label{font-family:var(--mono); font-size:10.5px; color:var(--slate); text-transform:uppercase; letter-spacing:0.05em; margin-top:6px;}

/* GENERIC SECTION */
section{padding:96px 0;}
.sec-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:48px;}
h2.sec-title{font-family:var(--display); font-weight:700; font-size:clamp(26px,3.2vw,36px); max-width:560px; line-height:1.15;}
.sec-desc{max-width:360px; color:var(--slate); font-size:14.5px;}
.lede{font-size:16px; color:var(--slate); max-width:720px; margin-bottom:8px;}

/* ABOUT */
.about-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;}}
.about-copy p{color:var(--slate); font-size:15px; margin-bottom:18px; max-width:560px;}
.vm-card{background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:26px; margin-bottom:18px;}
.vm-label{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--violet); margin-bottom:10px;}
.vm-text{font-family:var(--display); font-weight:600; font-size:17px; line-height:1.4;}

.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:56px;}
@media (max-width:800px){.values-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.values-grid{grid-template-columns:1fr;}}
.value-card{border-top:2px solid var(--ink); padding-top:16px;}
.value-title{font-family:var(--display); font-weight:700; font-size:16px; margin-bottom:8px;}
.value-desc{font-size:13.5px; color:var(--slate);}

/* BUSINESS OVERVIEW CARDS */
.biz-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:900px){.biz-grid{grid-template-columns:1fr;}}
.biz-card{background:var(--paper); border:1px solid var(--line); border-radius:6px; overflow:hidden; transition:transform .15s, box-shadow .15s; display:block; text-decoration:none; color:var(--ink);}
.biz-card:hover{transform:translateY(-3px); box-shadow:0 16px 32px rgba(27,31,75,0.08);}
.biz-img{aspect-ratio:4/3;}
.biz-img img{display:block; width:100%; height:100%; object-fit:cover;}
.biz-body{padding:26px;}
.biz-num{font-family:var(--mono); font-size:11px; color:var(--violet); margin-bottom:12px;}
.biz-title{font-family:var(--display); font-weight:700; font-size:19px; margin-bottom:6px;}
.biz-tag{font-size:13.5px; color:var(--slate); margin-bottom:16px;}
.biz-link{font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.04em; color:var(--violet);}

/* DIVISION DETAIL */
.division{scroll-margin-top:90px;}
.division-head{display:flex; align-items:center; gap:16px; margin-bottom:14px;}
.logo-mark.stone{background:linear-gradient(120deg,var(--stone3),var(--slate));}
.service-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden; margin-top:16px;}
@media (max-width:800px){.service-grid{grid-template-columns:1fr;}}
.service-card{background:var(--paper); padding:30px;}
.service-title{font-family:var(--display); font-weight:700; font-size:17px; margin-bottom:10px;}
.service-desc{font-size:14px; color:var(--slate); margin-bottom:14px;}
.service-list{display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0;}
.service-list li{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.03em; color:var(--slate); border:1px solid var(--line); padding:6px 11px; border-radius:14px;}

.gallery{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:18px; margin-top:36px;}
@media (max-width:800px){.gallery{grid-template-columns:1fr; }}
.gallery .g-item{border-radius:6px; overflow:hidden; aspect-ratio:4/3;}
.gallery .g-item img{display:block; width:100%; height:100%; object-fit:cover;}
.gallery .g-big{aspect-ratio:auto; height:100%;}

/* AGGREGATE PHOTO + SCALE */
.strata{position:relative; aspect-ratio:16/9; border-radius:6px; overflow:hidden; margin-top:36px;}
.strata img{display:block; width:100%; height:100%; object-fit:cover;}
.strata .tag{position:absolute; right:16px; bottom:16px; font-family:var(--mono); font-size:11px; color:#fff; background:rgba(23,22,28,0.55); padding:7px 12px; border-radius:2px; letter-spacing:0.04em;}

.scale-panel{background:var(--navy); color:#fff; border-radius:6px; padding:44px 36px; margin-top:24px;}
.scale-panel-head{font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.07em; color:var(--gold); margin-bottom:26px;}
.scale{position:relative;}
.scale-line{position:absolute; top:calc(50% + 6px); left:0; right:0; height:1px; background:rgba(255,255,255,0.2);}
.scale-row{display:flex; align-items:flex-end; justify-content:space-between; position:relative;}
.scale-item{display:flex; flex-direction:column; align-items:center; gap:14px; flex:1;}
.scale-dot{border-radius:50%; background:var(--gold);}
.scale-name{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; text-align:center;}

/* WHY CHOOSE */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden;}
@media (max-width:800px){.why-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.why-grid{grid-template-columns:1fr;}}
.why-card{background:var(--paper); padding:28px;}
.why-num{font-family:var(--mono); font-size:11px; color:var(--violet); margin-bottom:14px;}
.why-title{font-family:var(--display); font-weight:700; font-size:16px; margin-bottom:8px;}
.why-desc{font-size:13.5px; color:var(--slate);}

/* APPROACH STEPPER */
.approach{background:var(--navy); color:#fff;}
.approach .eyebrow{color:var(--gold);}
.approach .eyebrow::before{background:var(--gold);}
.approach h2.sec-title{color:#fff;}
.approach .sec-desc{color:rgba(255,255,255,0.6);}
.stepper{position:relative; margin-top:20px;}
.stepper-track{position:absolute; top:9px; left:0; right:0; height:2px; background-image:linear-gradient(90deg, rgba(255,255,255,0.35) 0 10px, transparent 10px 20px); background-size:20px 2px;}
.stepper-row{display:flex; justify-content:space-between; position:relative;}
.step{display:flex; flex-direction:column; align-items:flex-start; gap:16px; flex:1; padding-right:24px;}
.step-dot{width:18px; height:18px; border-radius:50%; background:var(--gold); border:3px solid var(--navy); box-shadow:0 0 0 2px rgba(255,255,255,0.5);}
.step-title{font-family:var(--display); font-weight:700; font-size:17px;}
.step-desc{font-size:13.5px; color:rgba(255,255,255,0.6); max-width:220px;}
@media (max-width:800px){.stepper-row{flex-direction:column; gap:32px;} .stepper-track{display:none;}}

/* PROJECTS */
.prop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:900px){.prop-grid{grid-template-columns:1fr;}}
.prop-card{background:var(--paper); border:1px solid var(--line); border-radius:6px; overflow:hidden; transition:transform .15s, box-shadow .15s;}
.prop-card:hover{transform:translateY(-3px); box-shadow:0 16px 32px rgba(27,31,75,0.08);}
.prop-img{aspect-ratio:4/3; position:relative;}
.prop-img img{display:block; width:100%; height:100%; object-fit:cover;}
.prop-img.stone-fill{background:linear-gradient(180deg,var(--stone1),var(--stone3));}
.prop-tag{position:absolute; top:14px; left:14px; font-family:var(--mono); font-size:10.5px; background:rgba(27,31,75,0.82); color:#fff; padding:5px 10px; border-radius:2px; letter-spacing:0.04em;}
.prop-body{padding:22px;}
.prop-loc{font-family:var(--mono); font-size:11px; color:var(--slate); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;}
.prop-title{font-family:var(--display); font-weight:700; font-size:18px; margin-bottom:8px;}
.prop-desc{font-size:13.5px; color:var(--slate);}

/* CONTACT */
.contact-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:start;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:30px; margin-bottom:16px;}
.contact-label{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.07em; color:var(--slate); margin-bottom:8px;}
.contact-value{font-family:var(--display); font-weight:600; font-size:17px;}
.contact-value a{border-bottom:1px solid var(--line); color:inherit; text-decoration:none;}
form.contact-form{display:grid; gap:16px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:600px){.form-row{grid-template-columns:1fr;}}
form.contact-form label{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--slate); display:block; margin-bottom:8px;}
form.contact-form input, form.contact-form select, form.contact-form textarea{width:100%; border:1px solid var(--line); border-radius:4px; padding:13px 14px; font-family:var(--body); font-size:14px; background:var(--paper); color:var(--ink);}
form.contact-form textarea{resize:vertical; min-height:110px;}
form.contact-form input:focus, form.contact-form select:focus, form.contact-form textarea:focus{outline:2px solid var(--violet); outline-offset:1px;}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.form-status{font-family:var(--body); font-size:14px; border-radius:4px; padding:12px 14px;}
.form-status.is-success{background:rgba(46,160,67,0.12); color:#1f7a34; border:1px solid rgba(46,160,67,0.3);}
.form-status.is-error{background:rgba(200,40,40,0.1); color:#a12626; border:1px solid rgba(200,40,40,0.3);}
.map-embed{border:1px solid var(--line); border-radius:6px; overflow:hidden; margin-top:4px;}
.map-embed iframe{display:block;}

/* CTA */
.cta{background:var(--grad); color:#fff; padding:80px 0; text-align:center;}
.cta-title{font-family:var(--display); color:#fff;font-weight:700; font-size:clamp(24px,3.4vw,34px); max-width:600px; margin:0 auto 16px;}
.cta-sub{color:rgba(255,255,255,0.85); max-width:460px; margin:0 auto 32px; font-size:15px;}
.cta-row{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.cta .btn-primary{background:#fff; color:var(--navy);}
.btn-ghost{padding:15px 26px; font-size:14.5px; font-weight:600; border:1px solid rgba(255,255,255,0.5); border-radius:3px; color:#fff; text-decoration:none; display:inline-block;}
.btn-ghost:hover{border-color:#fff;}

/* FOOTER */
footer{padding:60px 0 36px; border-top:1px solid var(--line);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:48px;}
@media (max-width:700px){.foot-grid{grid-template-columns:1fr 1fr; row-gap:36px;}}
.foot-desc{font-size:13.5px; color:var(--slate); max-width:230px; margin-top:12px;}
.foot-h{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--slate); margin-bottom:16px;}
.foot-links{display:flex; flex-direction:column; gap:10px; font-size:14px;}
.foot-links a{color:var(--ink); text-decoration:none; opacity:0.8;}
.foot-links a:hover{opacity:1;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:26px; border-top:1px solid var(--line); font-size:12.5px; color:var(--slate); flex-wrap:wrap; gap:12px;}
