:root{
  --cream:#f5f1ea;
  --charcoal:#2b2b2b;
  --charcoal-soft:#3d3d3d;
  --gray:#8a8a85;
  --gray-light:#d8d4cb;
  --line:#c9c4b8;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Helvetica Neue',Arial,sans-serif;
  background:var(--cream);
  color:var(--charcoal);
  line-height:1.6;
}
h1,h2,h3{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  letter-spacing:0.02em;
}
a{color:inherit;text-decoration:none;}

/* Header */
header{
  position:fixed;
  top:0;left:0;right:0;
  max-width:1400px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px 6%;
  background:rgba(245,241,234,0.92);
  backdrop-filter:blur(6px);
  z-index:100;
  border-bottom:1px solid var(--line);
}
.logo{
  font-family:Georgia,serif;
  font-size:1.3rem;
  letter-spacing:0.12em;
  color:var(--charcoal);
  display:flex;
  align-items:center;
}
.logo span{color:var(--gray);}
.logo-img{
  height:68px;
  width:auto;
  display:block;
}
nav a{
  margin-left:32px;
  font-size:0.85rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--charcoal-soft);
  transition:color 0.2s;
}
nav a:hover, nav a.active{color:var(--charcoal);}

/* Hero */
.hero{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 6%;
  background:
    linear-gradient(180deg, rgba(43,43,43,0.04), rgba(43,43,43,0.0)),
    var(--cream);
  border-bottom:1px solid var(--line);
}
.hero-eyebrow{
  font-size:0.8rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--gray);
  margin-bottom:20px;
}
.hero h1{
  font-size:clamp(2.4rem, 6vw, 4.2rem);
  color:var(--charcoal);
  max-width:16ch;
  line-height:1.1;
}
.hero p{
  margin-top:24px;
  max-width:52ch;
  font-size:1.1rem;
  color:var(--charcoal-soft);
}
.hero-actions{
  margin-top:40px;
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  padding:16px 36px;
  border:1px solid var(--charcoal);
  font-size:0.85rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  width:fit-content;
  transition:background 0.25s, color 0.25s;
}
.btn:hover{
  background:var(--charcoal);
  color:var(--cream);
}
.btn-ghost{
  border-color:var(--gray);
  color:var(--charcoal-soft);
}
.btn-ghost:hover{
  background:var(--charcoal-soft);
  border-color:var(--charcoal-soft);
  color:var(--cream);
}

/* Sections */
section{
  max-width:1400px;
  margin:0 auto;
  padding:110px 6%;
  border-bottom:1px solid var(--line);
}
.section-label{
  font-size:0.8rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--gray);
  margin-bottom:18px;
}
.section-title{
  font-size:clamp(1.8rem, 3.5vw, 2.6rem);
  max-width:22ch;
  margin-bottom:28px;
}
.section-body{
  max-width:65ch;
  color:var(--charcoal-soft);
  font-size:1.05rem;
}
.section-body + .section-body{
  margin-top:18px;
}

/* Focus grid */
.focus-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:48px;
  margin-top:56px;
}
.focus-card{
  border-top:1px solid var(--charcoal);
  padding-top:24px;
}
.focus-card .num{
  font-family:Georgia,serif;
  font-size:0.9rem;
  color:var(--gray);
  margin-bottom:14px;
}
.focus-card h3{
  font-size:1.35rem;
  margin-bottom:12px;
}
.focus-card p{
  color:var(--charcoal-soft);
  font-size:0.98rem;
}

/* Presence */
.presence{
  display:flex;
  flex-wrap:wrap;
  gap:64px;
  margin-top:56px;
  align-items:flex-start;
}
.presence-map{
  flex:1 1 320px;
  min-height:280px;
  background:var(--gray-light);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--charcoal-soft);
  font-family:Georgia,serif;
  letter-spacing:0.08em;
  font-size:1.1rem;
  border:1px solid var(--line);
}
.presence-list{
  flex:1 1 280px;
}
.presence-list h3{
  font-size:1.2rem;
  margin-bottom:16px;
}
.presence-list ul{
  list-style:none;
}
.presence-list li{
  padding:14px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  color:var(--charcoal-soft);
  font-size:0.98rem;
}
.presence-list li span:last-child{
  color:var(--gray);
  font-size:0.85rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
}

/* Contact */
.contact{
  background:var(--charcoal);
  color:var(--cream);
  text-align:center;
}
.contact .section-label{color:var(--gray-light);}
.contact h2{
  color:var(--cream);
  font-size:clamp(1.8rem, 4vw, 3rem);
  max-width:20ch;
  margin:0 auto 32px;
}
.contact-email{
  display:inline-block;
  margin-top:12px;
  padding:18px 44px;
  border:1px solid var(--cream);
  font-size:0.9rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  transition:background 0.25s, color 0.25s;
}
.contact-email:hover{
  background:var(--cream);
  color:var(--charcoal);
}

/* Footer */
footer{
  max-width:1400px;
  margin:0 auto;
  padding:36px 6%;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  font-size:0.8rem;
  color:var(--gray);
  letter-spacing:0.04em;
}

@media (max-width:640px){
  nav{display:none;}
  header{padding:20px 6%;}
  section{padding:80px 6%;}
}
