:root{
  --cream:#FBF7EF;
  --panel:#FFFFFF;
  --sand:#F2E9D8;
  --sand-line:#E7DAC0;
  --ink:#2E2A22;
  --text-soft:#6E6656;
  --terracotta:#C1592E;
  --terracotta-deep:#A2431F;
  --gold:#C08A28;
  --line:rgba(46,42,34,0.12);
  --font-display:'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
:root[data-theme="dark"]{
  --cream:#20241D; --sand:#191C15; --panel:#252A1F;
  --ink:#EDE8DA; --text-soft:#C7C0AE; --line:rgba(237,232,218,0.14); --sand-line:rgba(237,232,218,0.14);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#20241D; --sand:#191C15; --panel:#252A1F;
    --ink:#EDE8DA; --text-soft:#C7C0AE; --line:rgba(237,232,218,0.14); --sand-line:rgba(237,232,218,0.14);
  }
}
html{ scroll-behavior:smooth; scroll-padding-top:78px; }
*{ box-sizing:border-box; }
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.display-serif{
  font-family:var(--font-display);
  color:var(--ink);
  font-weight:600;
  letter-spacing:-0.01em;
}
p{ color:var(--text-soft); max-width:62ch; }
.container-narrow{ max-width:1180px; margin:0 auto; padding-left:24px; padding-right:24px; }
.rule{ height:1px; background:var(--line); border:0; margin:0; }
.eyebrow{ font-family:var(--font-body); font-size:0.8rem; color:var(--terracotta); font-weight:600; }
.kicker{ font-size:0.95rem; color:var(--gold); font-weight:600; margin-bottom:0.4rem; }

/* Navbar */
.dw-nav{
  position:sticky; top:0; z-index:1000;
  top:env(safe-area-inset-top,0px);
  background:var(--panel);
  border-bottom:1px solid var(--line);
}
.dw-nav .navbar-brand{
  font-family:var(--font-display); font-weight:600; font-size:1.25rem; color:var(--ink); letter-spacing:0.01em;
  display:flex; align-items:center;
}
.dw-nav .navbar-brand img{
  height:42px; width:auto; max-width:220px; object-fit:contain; display:block;
}
.dw-nav .navbar-brand small{
  display:block; font-family:var(--font-body); font-size:0.62rem; color:var(--terracotta);
  font-weight:600; letter-spacing:0.08em; margin-top:-2px;
}
.dw-nav .nav-link{ color:var(--ink) !important; font-size:0.94rem; font-weight:500; padding:0.55rem 0.9rem !important; }
.dw-nav .nav-link:hover{ color:var(--terracotta) !important; }
.dw-nav .dropdown-menu{ background:var(--panel); border:1px solid var(--line); border-radius:2px; padding:0.35rem 0; margin-top:0.4rem; box-shadow:0 8px 24px rgba(46,42,34,0.08); }
.dw-nav .dropdown-item{ font-size:0.92rem; color:var(--ink); padding:0.5rem 1.1rem; }
.dw-nav .dropdown-item:hover{ background:var(--sand); color:var(--terracotta-deep); }

/* Open the Properties dropdown on mouse hover for devices with a real pointer;
   touch devices keep Bootstrap's default tap-to-open behavior. */
@media (hover: hover) and (pointer: fine){
  .dw-nav .nav-item.dropdown{ position:relative; }
  .dw-nav .nav-item.dropdown .dropdown-menu{
    display:block;
    opacity:0;
    visibility:hidden;
    transform:translateY(6px);
    transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
    margin-top:0;
    pointer-events:none;
  }
  .dw-nav .nav-item.dropdown:hover .dropdown-menu,
  .dw-nav .nav-item.dropdown .dropdown-menu:hover{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
}
.dw-nav .btn-nav-cta{ background:var(--terracotta); color:#fff; border:1px solid var(--terracotta); font-size:0.88rem; font-weight:600; padding:0.5rem 1.1rem; border-radius:2px; }
.dw-nav .btn-nav-cta:hover{ background:var(--terracotta-deep); color:#fff; }

/* Buttons */
.btn-dw-primary{ background:var(--terracotta); border:1px solid var(--terracotta); color:#fff; font-weight:600; padding:0.75rem 1.6rem; border-radius:2px; font-size:0.96rem; }
.btn-dw-primary:hover{ background:var(--terracotta-deep); border-color:var(--terracotta-deep); color:#fff; }
.btn-dw-outline{ background:transparent; border:1px solid var(--ink); color:var(--ink); font-weight:600; padding:0.75rem 1.6rem; border-radius:2px; font-size:0.96rem; }
.btn-dw-outline:hover{ background:var(--ink); color:var(--cream); }
.btn-dw-outline-ink{ background:transparent; border:1px solid var(--line); color:var(--ink); font-weight:600; padding:0.65rem 1.3rem; border-radius:2px; font-size:0.9rem; }
.btn-dw-outline-ink:hover{ background:var(--sand); }

/* Hero */
.dw-hero{ background:var(--cream); padding:4rem 0 3.5rem; }
.dw-hero h1{ font-size:clamp(2.3rem, 4.6vw, 3.6rem); line-height:1.06; max-width:15ch; }
.dw-hero p.lead{ max-width:46ch; font-size:1.08rem; }
.hero-photo{ width:100%; height:460px; object-fit:cover; border:1px solid var(--line); }
.hero-photo-wrap{ position:relative; }
.hero-badge{
  position:absolute; left:-1px; bottom:-1px; background:var(--terracotta); color:#fff;
  padding:0.9rem 1.2rem; font-size:0.85rem; font-weight:600; max-width:220px; line-height:1.4;
}

/* Sections */
section{ padding:4.5rem 0; }
.section-alt{ background:var(--sand); }
.section-head{ margin-bottom:2.5rem; }
.section-head h2{ font-size:clamp(1.7rem, 3vw, 2.3rem); max-width:22ch; }

/* Model panels */
.model-panel{ border:1px solid var(--line); background:var(--panel); padding:2rem; height:100%; }
.model-panel h3{ font-size:1.4rem; margin-bottom:0.6rem; }
.model-panel .model-tag{ font-size:0.78rem; color:var(--gold); font-weight:600; margin-bottom:0.9rem; }
.model-panel ul{ padding-left:1.1rem; margin-top:1rem; }
.model-panel li{ color:var(--text-soft); margin-bottom:0.4rem; }

/* Value grid */
.value-item{ border-top:2px solid var(--terracotta); padding-top:1rem; height:100%; }
.value-item h4{ font-size:1.15rem; margin-bottom:0.5rem; }

/* About */
.about-photo{ width:100%; height:420px; object-fit:cover; border:1px solid var(--line); }
.principle-row{ border-bottom:1px solid var(--line); padding:1.3rem 0; display:flex; gap:1.5rem; }
.principle-row:first-of-type{ border-top:1px solid var(--line); }
.principle-num{ font-family:var(--font-display); font-size:1.4rem; color:var(--terracotta); min-width:2.2rem; }

/* Team */
.team-card{ text-align:center; }
.team-photo{ width:100%; aspect-ratio:1/1; object-fit:cover; border:1px solid var(--line); margin-bottom:1rem; }
.team-card h4{ font-size:1.1rem; margin-bottom:0.15rem; }
.team-role{ font-size:0.86rem; color:var(--terracotta); font-weight:600; margin-bottom:0; }

/* Comparison table */
.comparison-table{ background:var(--panel); border:1px solid var(--line); font-size:0.92rem; }
.comparison-table thead th{
  font-family:var(--font-display); font-weight:600; color:var(--ink);
  background:var(--sand); border-bottom:1px solid var(--line); padding:0.9rem 1rem;
}
.comparison-table tbody td{ padding:0.9rem 1rem; color:#000; border-color:var(--line); }
.comparison-table tbody td:first-child{ color:#000; font-weight:600; }

/* Services */
.service-block{ border:1px solid var(--line); background:var(--panel); height:100%; overflow:hidden; }
.service-photo{ width:100%; height:170px; object-fit:cover; display:block; }
.service-block .service-body{ padding:1.8rem; }
.service-block h3{ font-size:1.25rem; }
.service-block .check-list{ list-style:none; padding:0; margin-top:1.1rem; }
.service-block .check-list li{ padding-left:1.4rem; position:relative; margin-bottom:0.7rem; color:var(--text-soft); font-size:0.92rem; }
.service-block .check-list li::before{ content:""; position:absolute; left:0; top:0.5rem; width:8px; height:8px; background:var(--gold); }

/* Portfolio filters */
.filter-btn{ border:1px solid var(--line); background:var(--panel); color:var(--ink); font-size:0.86rem; font-weight:500; padding:0.5rem 1.1rem; border-radius:2px; margin:0 0.4rem 0.6rem 0; }
.filter-btn.active, .filter-btn:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); }

.property-card{ border:1px solid var(--line); background:var(--panel); height:100%; display:flex; flex-direction:column; overflow:hidden; }
.property-photo{ width:100%; height:350px; object-fit:cover; display:block; }
.property-body{ padding:1.4rem; flex:1; display:flex; flex-direction:column; }
.property-body h4{ font-size:1.15rem; margin-bottom:0.2rem; }
.property-loc{ font-size:0.85rem; color:var(--text-soft); margin-bottom:0.7rem; }
.property-tag{ display:inline-block; font-size:0.72rem; font-weight:600; color:var(--terracotta); border:1px solid var(--terracotta); padding:0.2rem 0.55rem; border-radius:2px; margin-bottom:0.7rem; align-self:flex-start; }
.property-tag.mgmt{ color:var(--gold); border-color:var(--gold); }
.property-desc{ font-size:0.92rem; flex:1; }

/* Property detail */
.gallery-photo{ width:100%; height:200px; object-fit:cover; border:1px solid var(--line); }
.detail-stat{ border-left:2px solid var(--terracotta); padding-left:1rem; }
.detail-stat .num{ font-family:var(--font-display); font-size:1.6rem; color:var(--ink); display:block; }
.detail-stat .lbl{ font-size:0.82rem; color:var(--text-soft); }

/* Workflow */
.workflow-step{ display:flex; gap:1.2rem; padding:1.2rem 0; border-bottom:1px solid var(--line); }
.workflow-step:last-child{ border-bottom:0; }
.workflow-num{ font-family:var(--font-display); font-size:1.5rem; color:var(--terracotta); min-width:2.3rem; }
.workflow-step h4{ font-size:1.02rem; margin-bottom:0.2rem; }
.workflow-step p{ font-size:0.9rem; margin-bottom:0; }
.partner-photo{ width:100%; height:100%; min-height:320px; object-fit:cover; border:1px solid var(--line); }

/* Media */
.media-card{ border:1px solid var(--line); background:var(--panel); height:100%; overflow:hidden; }
.media-photo{ width:100%; height:160px; object-fit:cover; display:block; }
.media-body{ padding:1.4rem; }
.media-tag{ font-size:0.75rem; color:var(--terracotta); font-weight:600; margin-bottom:0.3rem; }
.media-card h4{ font-size:1.08rem; }

/* Contact */
.contact-panel{ background:var(--panel); border:1px solid var(--line); padding:2.4rem; }
.contact-panel label{ color:var(--ink); font-size:0.85rem; font-weight:500; margin-bottom:0.3rem; }
.contact-panel .form-control, .contact-panel .form-select{ background:var(--cream); border:1px solid var(--line); color:var(--ink); border-radius:2px; }
.contact-panel .form-control:focus, .contact-panel .form-select:focus{ border-color:var(--terracotta); box-shadow:none; background:var(--panel); }
.contact-info-item{ padding:1.1rem 0; border-bottom:1px solid var(--line); }
.contact-info-item:last-child{ border-bottom:0; }
.contact-info-item .lbl{ font-size:0.78rem; color:var(--gold); font-weight:600; margin-bottom:0.2rem; }

footer{ background:var(--sand); border-top:1px solid var(--line); padding:2.2rem 0; }
footer p{ font-size:0.85rem; margin-bottom:0; color:var(--text-soft); }

a{ text-decoration:none; }
:focus-visible{ outline:2px solid var(--terracotta); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

@media (max-width: 991px){
  .dw-nav .navbar-collapse{ background:var(--panel); padding:1rem 0.5rem; }
  section{ padding:3.2rem 0; }
  .hero-photo, .about-photo{ height:300px; }
}