:root{--ink:#242321;--muted:#6d6964;--taupe:#8a7b70;--sand:#f4f1ed;--white:#fff;--max:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--white);line-height:1.65}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid #e8e3dd}.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:1.05rem;letter-spacing:.22em;font-weight:700}.site-nav{display:flex;gap:24px;align-items:center}.site-nav a{font-size:.88rem;letter-spacing:.08em;text-transform:uppercase}.menu-toggle{display:none;border:0;background:none;font-size:1.5rem}.hero{min-height:72vh;display:grid;place-items:end start;background-size:cover;background-position:center;position:relative;color:white}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.12))}.hero-content{position:relative;padding:96px 0;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:700}.hero h1,.page-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,7vw,6.5rem);line-height:.95;margin:.2em 0}.hero p{font-size:1.16rem;max-width:650px}.buttons{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;padding:13px 20px;border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700}.btn-light{border-color:white;color:white}.btn-fill{background:var(--ink);color:white}.section{padding:88px 0}.section.alt{background:var(--sand)}.section h2,.project-copy h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.1rem,4vw,4rem);line-height:1.05;margin:0 0 22px}.lead{font-size:1.18rem;max-width:800px;color:var(--muted)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.card{background:white}.card img{aspect-ratio:4/3;object-fit:cover}.card-body{padding:22px 0}.card h3{font-family:Georgia,'Times New Roman',serif;font-size:1.7rem;margin:.2em 0}.location{color:var(--taupe);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.text-link{font-weight:700;border-bottom:1px solid}.page-hero{padding:110px 0 70px;background:var(--sand)}.project-hero{height:68vh;background-size:cover;background-position:center}.project-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:70px}.highlights{padding:0;list-style:none}.highlights li{padding:10px 0;border-bottom:1px solid #ddd6cf}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.gallery img:nth-child(5n+1){grid-column:span 2;aspect-ratio:16/9}.service{padding-top:18px;border-top:1px solid #d7d0c8}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}input,textarea{padding:13px;border:1px solid #c9c2ba;font:inherit}textarea{min-height:150px}.site-footer{background:#22211f;color:white;padding:55px 0 28px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}.site-footer a{color:#ddd}.copyright{margin-top:40px;padding-top:20px;border-top:1px solid #45423f;color:#aaa;font-size:.85rem}.project-nav{display:flex;justify-content:space-between;gap:20px;margin-top:50px}.center{text-align:center}.map-list{columns:2;max-width:500px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:10px;top:10px;background:#fff;padding:10px;z-index:99}@media(max-width:850px){.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:78px;left:0;right:0;background:white;padding:22px 20px;border-bottom:1px solid #ddd;flex-direction:column;align-items:flex-start}.site-nav.open{display:flex}.grid-3,.grid-4,.project-layout,.contact-grid{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.container{width:min(calc(100% - 28px),var(--max))}.hero{min-height:76vh}.hero-content{padding:68px 0}.section{padding:64px 0}.grid-3,.grid-4,.project-layout,.contact-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery img:nth-child(5n+1){grid-column:auto;aspect-ratio:4/3}.project-hero{height:52vh}.map-list{columns:1}.brand{font-size:.9rem}.project-nav{flex-direction:column}}


/* Typography update v2 */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600&display=swap');

body{
  font-family:'Manrope',sans-serif;
  font-weight:400;
  line-height:1.7;
}
h1,h2,h3,h4,h5,h6{
  font-family:'Manrope',sans-serif;
  font-weight:600;
  letter-spacing:.02em;
}
h1{font-size:2.7rem;}
h2{font-size:2.0rem;}
h3{font-size:1.45rem;}
button,.btn{font-weight:500;}



/* Typography refinement v1.2 */
:root{
  --content-max-width: 1200px;
}

body{
  font-family:'Manrope',sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.75;
  color:#2b2b2b;
}

h1,h2,h3,h4,h5,h6{
  font-family:'Manrope',sans-serif;
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.2;
  margin-bottom:.75rem;
}

h1{font-size:2.35rem;}
h2{font-size:1.80rem;}
h3{font-size:1.35rem;}

section{
  padding-top:5rem;
  padding-bottom:5rem;
}

p{
  max-width:70ch;
  margin-bottom:1.2rem;
}

.btn,button{
  font-weight:500;
  padding:.85rem 1.5rem;
}



/* ===== Version 2.0 Typography System ===== */
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&display=swap');

:root{
  --font:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

body{
  font-family:var(--font);
  font-size:17px;
  font-weight:400;
  line-height:1.8;
  color:#2b2b2b;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font);
  font-weight:500;
  letter-spacing:.01em;
  line-height:1.15;
}

h1{font-size:3.1rem;}
h2{font-size:2.1rem;}
h3{font-size:1.55rem;}

.hero h1{
  font-weight:500;
  font-size:3.3rem;
  margin-bottom:.4rem;
}

.hero .tagline{
  font-size:1.1rem;
  font-weight:400;
  opacity:.78;
}

nav a{
  font-size:.95rem;
  font-weight:500;
  letter-spacing:.01em;
}

section{
  padding:6rem 0;
}

p{
  max-width:68ch;
}

.btn,button{
  font-family:var(--font);
  font-weight:500;
}



/* ===== Version 2.1 Heading Refinement ===== */
body{
  font-family:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.72;
}

h1,h2,h3,h4,h5,h6{
  font-family:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:500;
  letter-spacing:0;
  line-height:1.18;
}

h1{font-size:clamp(2rem,4vw,2.7rem);}
h2{font-size:clamp(1.55rem,3vw,2rem);}
h3{font-size:clamp(1.2rem,2.2vw,1.45rem);}

.hero h1,
.page-hero h1,
.page-header h1,
main > h1{
  font-size:clamp(2.15rem,4.2vw,3rem);
  font-weight:500;
}

.hero .tagline,
.hero p,
.page-hero p{
  font-size:1rem;
  line-height:1.6;
}

section{
  padding-top:4.5rem;
  padding-bottom:4.5rem;
}

@media (max-width: 768px){
  body{font-size:15.5px;}
  h1{font-size:2rem;}
  h2{font-size:1.55rem;}
  h3{font-size:1.2rem;}
  .hero h1,
  .page-hero h1,
  .page-header h1,
  main > h1{
    font-size:2.15rem;
  }
  section{
    padding-top:3.5rem;
    padding-bottom:3.5rem;
  }
}



/* ===== Version 2.2 Section Heading Refinement ===== */

/* Reduce secondary section headings */
h2{
  font-size:clamp(1.35rem,2.2vw,1.75rem);
  font-weight:500;
}

h3{
  font-size:clamp(1.1rem,1.8vw,1.3rem);
  font-weight:500;
}

/* Target common content section titles */
.section-title,
.section-heading,
.content-section h2,
.about h2,
.services h2,
.contact h2,
.portfolio h2{
  font-size:clamp(1.35rem,2vw,1.65rem) !important;
  line-height:1.2;
}

/* Slightly tighter spacing under section headings */
h2 + p,
h3 + p{
  margin-top:.5rem;
}



/* ===== Version 2.3 Visual Polish ===== */

/* Softer, more editorial rhythm */
body{
  font-size:16px;
  line-height:1.75;
  letter-spacing:-0.003em;
  color:#2c2c2c;
}

/* Hierarchy */
h1{
  font-size:clamp(2rem,3.6vw,2.6rem);
  font-weight:500;
  margin-bottom:.6rem;
}

h2{
  font-size:clamp(1.25rem,2vw,1.55rem) !important;
  font-weight:500;
  margin-bottom:.65rem;
}

h3{
  font-size:clamp(1.05rem,1.6vw,1.2rem);
  font-weight:500;
}

/* Constrain text for readability */
p, li{
  max-width:66ch;
}

/* Airier layout without oversized headings */
section{
  padding-top:4rem;
  padding-bottom:4rem;
}

/* Cleaner navigation */
nav a{
  font-size:.92rem;
  letter-spacing:.015em;
  padding:0 .75rem;
}

/* Refined buttons */
.btn,button{
  border-radius:6px;
  padding:.8rem 1.4rem;
  transition:all .2s ease;
}

/* Images */
img{
  border-radius:4px;
}

/* Lists */
ul li{
  margin-bottom:.35rem;
}


/* Version 2.4 About page body consistency */
.about p,
.about .lead,
.about .intro{
  font-family:'Geist',system-ui,sans-serif !important;
  font-size:16px !important;
  font-weight:400 !important;
  line-height:1.75 !important;
  color:#2c2c2c !important;
  letter-spacing:0 !important;
  max-width:66ch;
}
