html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}main{overflow:hidden}.py-lg-6{padding-top:6rem!important;padding-bottom:6rem!important}
.site-header{position:absolute;z-index:50;top:0;left:0;right:0;color:var(--white)}.site-nav{min-height:86px;border-bottom:1px solid rgba(255,255,255,.18);display:flex;align-items:center;position:relative}.brand{display:inline-flex;align-items:center;gap:14px}.brand-monogram{font-family:var(--font-heading);font-size:25px;letter-spacing:-.07em;border:1px solid rgba(255,255,255,.55);padding:5px 8px 3px;line-height:1}.brand-monogram span{font-size:.55em;padding:0 2px}.brand-name{font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700}.nav-link{color:rgba(255,255,255,.78);font-size:13px;text-transform:uppercase;letter-spacing:.08em;padding:.35rem 0!important}.nav-link:hover,.nav-link.active{color:var(--white)}.nav-contact{margin-left:28px;border-left:1px solid rgba(255,255,255,.25);padding-left:28px;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.nav-contact span,.text-link span,.hero-cta span,.pm-email span,.form-submit span{margin-left:8px}.site-toggler{border:0;padding:8px;background:transparent}.site-toggler span{display:block;width:28px;height:1px;background:#fff;margin:6px}
.home-hero{min-height:94vh;position:relative;background:var(--ink);color:#fff}.hero-image{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,13,11,.88) 0%,rgba(16,13,11,.62) 44%,rgba(16,13,11,.15) 100%)}.hero-content{position:relative;z-index:1;min-height:94vh;padding-top:160px;padding-bottom:58px;display:flex;flex-direction:column;justify-content:center}.hero-kicker,.section-index,.service-kicker,.property-location,.footer-kicker,.footer-label{font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:700}.hero-kicker{color:#d8c2ae;margin-bottom:28px}.home-hero h1{font-family:var(--font-heading);font-size:clamp(4rem,8vw,8rem);line-height:.9;letter-spacing:-.025em;max-width:900px;margin:0}.home-hero h1 em,.page-intro h1 em{color:#cab09a;font-style:normal}.hero-bottom{margin-top:62px}.hero-bottom p{max-width:440px;color:rgba(255,255,255,.72);font-size:15px}.hero-cta{display:inline-flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.65);padding-bottom:9px;color:#fff;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700}.intro-strip,.property-section,.editorial-section,.principles,.service-list,.contact-section,.procurement-section{padding:105px 0}.intro-strip{background:var(--cream);border-bottom:1px solid rgba(23,20,17,.12)}.section-index{color:var(--cocoa);margin:0}.intro-strip h2,.section-heading h2,.manifesto-grid h2,.office-copy h2,.closing-section h2,.page-intro h1,.editorial-copy h2,.principles h2,.service-item h2,.cta-row h2,.procurement-section h3,.contact-aside h2,.procurement-contact h2{font-family:var(--font-heading);font-weight:400;line-height:1.02;letter-spacing:-.018em}.intro-strip h2{font-size:clamp(2.9rem,5vw,5rem);max-width:850px;margin:0}.muted-copy{color:#75675e;max-width:330px;margin-bottom:28px}.text-link{display:inline-flex;align-items:center;color:var(--ink);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;border-bottom:1px solid rgba(23,20,17,.35);padding-bottom:7px}.text-link:hover{border-color:var(--ink)}.property-section{background:#eee5dc}.section-heading{margin-bottom:56px}.section-heading h2{font-size:clamp(3rem,5vw,5.2rem);margin:14px 0 0}.property-list{border-top:1px solid rgba(23,20,17,.17)}.property-row{border-bottom:1px solid rgba(23,20,17,.17)}.property-link{display:grid;grid-template-columns:minmax(280px,40%) 1fr;min-height:430px}.property-image-wrap{overflow:hidden;background:#ddd}.property-image{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.property-link:hover .property-image{transform:scale(1.03)}.property-copy{padding:42px 4vw;display:flex;flex-direction:column;justify-content:space-between}.property-location{color:var(--cocoa);margin:0 0 14px}.property-copy h3{font-family:var(--font-heading);font-weight:400;font-size:clamp(2rem,3vw,3.5rem);line-height:1;margin:0;max-width:600px}.property-tag{font-size:10px;text-transform:uppercase;letter-spacing:.12em;border:1px solid rgba(23,20,17,.28);padding:7px 10px;white-space:nowrap}.property-description{max-width:540px;color:#6d615a;margin:32px 0}.property-meta{display:flex;gap:25px;align-items:center;color:#4f433b;font-size:12px;text-transform:uppercase;letter-spacing:.09em}.property-arrow{margin-left:auto;font-size:20px}.manifesto-section{background:var(--ink);color:#fff;padding:125px 0}.manifesto-grid{display:grid;grid-template-columns:24% 48% 28%;gap:0}.manifesto-grid .section-index{color:#bca58f}.manifesto-grid h2{font-size:clamp(3.2rem,6vw,6.7rem);margin:0}.manifesto-note{padding-left:35%;color:rgba(255,255,255,.68);align-self:end}.manifesto-note .line{width:60px;height:1px;background:#bca58f;display:block;margin-bottom:22px}.light-link{color:#fff;border-color:rgba(255,255,255,.4);margin-top:16px}.office-section{display:grid;grid-template-columns:58% 42%;background:var(--sand)}.office-image{min-height:600px}.office-image img{width:100%;height:100%;object-fit:cover}.office-copy{padding:90px 8vw;display:flex;flex-direction:column;justify-content:center}.office-copy h2{font-size:clamp(3rem,4vw,4.7rem);margin:16px 0 24px}.office-copy p{max-width:420px;color:#675b54;margin-bottom:30px}.closing-section{padding:105px 0;background:var(--cream)}.closing-row{display:flex;justify-content:space-between;align-items:center;gap:30px;border-bottom:1px solid rgba(23,20,17,.2);padding:38px 0 28px}.closing-section h2{font-size:clamp(3rem,6vw,6.5rem);margin:0}.round-link{width:76px;height:76px;border:1px solid rgba(23,20,17,.4);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 auto}.round-link:hover{background:var(--ink);color:#fff}
.page-intro{padding:165px 0 85px;background:var(--sand)}.page-intro-tight{padding-bottom:70px}.page-intro h1{font-size:clamp(4rem,7vw,7.8rem);max-width:1100px;margin:20px 0 35px}.intro-copy{max-width:670px;color:#71645b;font-size:18px}.editorial-grid{display:grid;grid-template-columns:55% 45%;align-items:center}.editorial-image{min-height:610px}.editorial-image img{width:100%;height:100%;object-fit:cover}.editorial-copy{padding:70px 9vw}.editorial-copy h2{font-size:clamp(2.8rem,4vw,4.6rem);margin:14px 0 30px}.editorial-copy p{color:#6c6058;max-width:520px}.principles{background:#eee5dc}.principles h2{font-size:clamp(2.7rem,4vw,4.5rem);margin-top:12px}.principle{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:25px 0;border-top:1px solid rgba(23,20,17,.18)}.principle:last-child{border-bottom:1px solid rgba(23,20,17,.18)}.principle>span{font-size:12px;color:var(--cocoa);font-weight:700}.principle h3{font-size:23px;margin:0 0 5px}.principle p{margin:0;color:#6f625a}.service-list{background:var(--cream)}.service-item{display:grid;grid-template-columns:18% 82%;gap:0;padding:80px 0;border-top:1px solid rgba(23,20,17,.16)}.service-item:last-child{border-bottom:1px solid rgba(23,20,17,.16)}.service-number{font-family:var(--font-heading);font-size:22px;color:var(--cocoa)}.service-kicker{color:var(--cocoa);margin:0 0 8px}.service-item h2{font-size:clamp(3rem,4.5vw,5.5rem);margin:0 0 25px}.service-item>div:last-child>p{max-width:650px;color:#6d6159;font-size:17px}.service-details{display:flex;flex-wrap:wrap;gap:10px 32px;margin-top:28px}.service-details span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.cta-panel{padding:90px 0;background:var(--sand)}.cta-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(23,20,17,.2);padding:35px 0 25px}.cta-row h2{font-size:clamp(3rem,5vw,5.5rem);margin:0}
.procurement-section{background:var(--cream)}.procurement-layout{display:grid;grid-template-columns:64% 36%;gap:7vw}.procurement-items{display:grid;grid-template-columns:1fr 1fr;margin-top:45px}.procurement-items>div{padding:30px 30px 30px 0;border-top:1px solid rgba(23,20,17,.18)}.procurement-items>div:nth-child(odd){margin-right:25px}.procurement-items>div:nth-child(even){padding-left:25px;border-left:1px solid rgba(23,20,17,.1)}.procurement-items span{font-size:11px;color:var(--cocoa);font-weight:700}.procurement-section h3{font-size:32px;margin:13px 0}.procurement-items p{color:#6c6058;max-width:340px}.procurement-contact{border-left:1px solid rgba(23,20,17,.18);padding-left:45px}.pm-initials{width:68px;height:68px;border:1px solid var(--walnut);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:24px;margin:35px 0 24px}.procurement-contact h2{font-size:44px;margin:0}.pm-title{color:#71645b;margin:6px 0 28px}.pm-email{display:inline-flex;align-items:center;font-weight:700;border-bottom:1px solid rgba(23,20,17,.4);padding-bottom:7px}.pm-rule{height:1px;background:rgba(23,20,17,.15);margin:38px 0 25px}.procurement-contact>p:last-child{color:#71645b;max-width:370px}.dark-note{background:var(--ink);color:#fff;padding:65px 0}.dark-note-row{display:grid;grid-template-columns:20% 50% 30%;align-items:center}.dark-note .section-index{color:#bca58f}.dark-note-row>p:nth-child(2){margin:0;color:rgba(255,255,255,.72);max-width:580px}.dark-note .hero-cta{justify-self:end}
.contact-section{background:var(--cream)}.contact-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);gap:8vw}.contact-form-wrap{border-top:1px solid rgba(23,20,17,.18);padding-top:32px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}.contact-form-wrap form>div{margin-bottom:28px}.contact-form-wrap label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:10px}.contact-form-wrap input,.contact-form-wrap select,.contact-form-wrap textarea{width:100%;border:0;border-bottom:1px solid rgba(23,20,17,.28);background:transparent;border-radius:0;padding:10px 0;color:var(--ink);outline:none}.contact-form-wrap textarea{resize:vertical}.contact-form-wrap input:focus,.contact-form-wrap select:focus,.contact-form-wrap textarea:focus{border-color:var(--walnut);box-shadow:none}.form-submit{border:0;background:var(--ink);color:#fff;padding:15px 24px;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700}.form-message{padding:15px 18px;margin-bottom:35px;border-left:3px solid var(--walnut);background:#ece3da}.form-message.error{border-left-color:#7a3b2f}.contact-aside{padding-left:45px;border-left:1px solid rgba(23,20,17,.18)}.contact-aside h2{font-size:44px;margin:30px 0 15px}.contact-aside>p{color:#71645b}.small-note{font-size:12px;max-width:360px}.map-wrap{margin-top:45px;height:320px}.map-wrap iframe{width:100%;height:100%;border:0;filter:grayscale(1)}
.site-footer{background:var(--espresso);color:#fff}.footer-top h2{font-family:var(--font-heading);font-size:clamp(2.8rem,4vw,4.9rem);font-weight:400;line-height:.98;max-width:700px;margin:12px 0 38px}.footer-kicker,.footer-label{color:#cbb39f}.footer-email{font-size:17px;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:7px}.footer-link,.footer-address,.footer-note{color:rgba(255,255,255,.63);font-size:14px}.footer-link{margin-bottom:7px}.footer-address{font-style:normal}.footer-note{max-width:330px;font-size:11px;margin-top:25px}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.46);font-size:11px}.footer-bottom code{color:#d1b6a0}
@media(max-width:991px){.site-header{position:absolute}.site-nav{min-height:78px}.site-nav .navbar-collapse{background:var(--espresso);padding:18px 20px}.nav-link{padding:8px 0!important}.nav-contact{display:none}.home-hero,.hero-content{min-height:86vh}.manifesto-grid{grid-template-columns:1fr}.manifesto-note{padding:0;margin-top:45px;max-width:500px}.office-section,.editorial-grid{grid-template-columns:1fr}.office-image,.editorial-image{min-height:430px}.procurement-layout,.contact-grid{grid-template-columns:1fr}.procurement-contact,.contact-aside{padding:55px 0 0;border-left:0;border-top:1px solid rgba(23,20,17,.18)}.dark-note-row{grid-template-columns:1fr;gap:20px}.dark-note .hero-cta{justify-self:start}.property-link{grid-template-columns:1fr}.property-image-wrap{min-height:360px}.property-copy{padding:35px 5vw}.office-copy{padding:70px 8vw}.service-item{grid-template-columns:1fr;gap:22px}.form-row{grid-template-columns:1fr}}
@media(max-width:575px){.home-hero h1{font-size:3.7rem}.hero-content{padding-top:130px}.intro-strip,.property-section,.editorial-section,.principles,.service-list,.contact-section,.procurement-section{padding:78px 0}.page-intro{padding:130px 0 65px}.page-intro h1{font-size:3.7rem}.property-image-wrap{min-height:270px}.property-copy{padding:28px 5vw}.property-description{margin:25px 0}.property-meta{gap:12px;flex-wrap:wrap}.manifesto-section{padding:85px 0}.office-image{min-height:330px}.closing-section{padding:78px 0}.round-link{width:62px;height:62px}.procurement-items{grid-template-columns:1fr}.procurement-items>div:nth-child(even){padding-left:0;border-left:0}.procurement-items>div:nth-child(odd){margin-right:0}.contact-aside{padding-top:45px}.map-wrap{height:270px}.footer-top h2{font-size:3rem}}


/* =========================================================
   CEDAR & BLACK — MOBILE NAVIGATION
   Replace previous mobile-menu fix with this
   ========================================================= */

@media (max-width: 991.98px) {

    /* Keep the original transparent/overlay header */
    .site-header {
        position: absolute !important;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        color: var(--white);
    }

    .site-nav {
        position: relative;
        z-index: 1000;
    }


    /* =========================
       HAMBURGER
       ========================= */

    .menu-toggle {
        display: flex !important;

        position: relative;
        z-index: 1004;

        width: 48px;
        height: 48px;

        padding: 0;
        margin: 0;

        border: 0;
        outline: 0;

        background: transparent;

        flex-direction: column;
        justify-content: center;
        align-items: center;

        gap: 6px;

        cursor: pointer;

        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
    }

    .menu-toggle span {
        display: block;

        width: 26px;
        height: 2px;

        background: var(--white);

        transition:
            transform .25s ease,
            opacity .2s ease;
    }


    /* Hamburger becomes X */

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

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

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


    /* =========================
       MOBILE NAV PANEL
       ========================= */

    .main-nav {
        position: fixed !important;

        top: 0;
        right: 0;

        width: min(86vw, 390px);
        height: 100dvh;

        box-sizing: border-box;

        padding: 110px 34px 45px;

        background: var(--espresso) !important;
        color: var(--white);

        z-index: 1002;

        display: flex !important;
        flex-direction: column;

        overflow-y: auto;
        overflow-x: hidden;

        transform: translateX(100%);

        visibility: hidden;
        opacity: 0;

        pointer-events: none;

        transition:
            transform .3s cubic-bezier(.22,.61,.36,1),
            opacity .2s ease,
            visibility 0s linear .3s;
    }


    /*
     * OPEN
     */

    .main-nav.is-open {
        transform: translateX(0);

        visibility: visible;
        opacity: 1;

        pointer-events: auto;

        transition:
            transform .3s cubic-bezier(.22,.61,.36,1),
            opacity .2s ease,
            visibility 0s linear 0s;
    }


    /* =========================
       NAVIGATION LINKS
       ========================= */

    .main-nav .navbar-nav {
        width: 100%;

        display: flex !important;

        flex-direction: column;

        align-items: stretch;

        gap: 0 !important;

        margin: 0;
        padding: 0;

        list-style: none;
    }

    .main-nav .nav-item {
        width: 100%;

        border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .main-nav .nav-link {
        display: block;

        width: 100%;

        padding: 19px 0 !important;

        color: rgba(255,255,255,.82) !important;

        font-size: 13px;

        font-weight: 500;

        letter-spacing: .12em;

        text-transform: uppercase;

        background: transparent !important;
    }

    .main-nav .nav-link:hover,
    .main-nav .nav-link.active {
        color: var(--white) !important;
    }


    /* =========================
       CONTACT LINK
       ========================= */

    .main-nav .nav-contact {
        display: inline-flex !important;

        align-items: center;

        width: fit-content;

        margin: 32px 0 0;

        padding: 0 0 9px;

        border: 0;

        border-bottom: 1px solid rgba(255,255,255,.4);

        color: var(--white);

        font-size: 11px;

        letter-spacing: .1em;

        text-transform: uppercase;
    }


    /* =========================
       BACKDROP
       ========================= */

    .mobile-menu-backdrop {
        position: fixed;

        inset: 0;

        z-index: 998;

        background: rgba(16,13,11,.58);

        opacity: 0;

        visibility: hidden;

        pointer-events: none;

        transition:
            opacity .25s ease,
            visibility .25s ease;
    }

    body.mobile-menu-open .mobile-menu-backdrop {
        opacity: 1;

        visibility: visible;

        pointer-events: auto;
    }


    /* Don't allow the page to scroll behind menu */

    body.mobile-menu-open {
        overflow: hidden;
    }
}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 575px) {

    .main-nav {
        width: 88vw;

        padding:
            105px
            27px
            35px;
    }

    .main-nav .nav-link {
        padding: 17px 0 !important;
    }

}


/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 992px) {

    .menu-toggle {
        display: none !important;
    }

    .main-nav {
        position: static;

        display: flex;

        align-items: center;

        margin-left: auto;

        gap: 28px;
    }

    .main-nav .navbar-nav {
        display: flex;

        flex-direction: row;

        align-items: center;

        gap: 1.5rem;
    }

    .main-nav .nav-link {
        color: rgba(255,255,255,.78);
    }

    .mobile-menu-backdrop {
        display: none !important;
    }
}
/* =========================================================
   PAGE HERO BANNERS (About, Properties, Services, etc.)
   ========================================================= */
.page-hero{
  position:relative;
  background:var(--ink);
  color:#fff;
  overflow:hidden;
}
.page-hero-image{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.page-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(16,13,11,.88) 0%,rgba(16,13,11,.62) 44%,rgba(16,13,11,.15) 100%);
}
.page-hero-content{
  position:relative;
  z-index:1;
  padding:165px 0 85px;
}
.page-hero.page-intro-tight .page-hero-content,
.page-hero-content.page-intro-tight{
  padding-bottom:70px;
}
.page-hero .section-index{
  color:#d8c2ae;
}
.page-hero h1{
  font-family:var(--font-heading);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.018em;
  font-size:clamp(4rem,7vw,7.8rem);
  max-width:1100px;
  margin:20px 0 35px;
  color:#fff;
}
.page-hero h1 em{
  color:#cab09a;
  font-style:normal;
}
.page-hero .intro-copy{
  color:rgba(255,255,255,.72);
  max-width:620px;
  font-size:17px;
  margin:0;
}
@media(max-width:575px){
  .page-hero-content{padding:130px 0 65px}
  .page-hero h1{font-size:3.7rem}
}
