/* Lamphere Brand Studio */
:root{
  --bone:#EDEAE0;
  --paper:#F5F3EB;
  --ink:#1B1A14;
  --sage:#8B9676;
  --sage-deep:#54603F;
  --muted:#6C6A5D;
  --line:rgba(27,26,20,.15);
  --line-soft:rgba(27,26,20,.07);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bone);color:var(--ink);
  font-family:'Hanken Grotesk',sans-serif;font-size:18px;line-height:1.7;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
.serif{font-family:'Fraunces',serif;}

.wrap{max-width:1200px;margin:0 auto;padding:0 40px;}
.narrow{max-width:760px;margin:0 auto;padding:0 40px;}

/* ---- header ---- */
.site-header{
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60;
  background:rgba(237,234,224,.93);backdrop-filter:blur(8px);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;
  padding-top:20px;padding-bottom:20px;}
.brand{display:flex;flex-direction:column;line-height:1;}
.brand .bn{font-family:'Fraunces',serif;font-size:24px;font-weight:500;
  letter-spacing:.005em;color:var(--ink);}
.brand .bs{font-size:9.5px;letter-spacing:.34em;font-weight:700;
  color:var(--sage-deep);text-transform:uppercase;margin-top:4px;}
.nav{display:flex;gap:32px;align-items:center;}
.nav a{font-size:13px;letter-spacing:.11em;text-transform:uppercase;
  font-weight:600;color:var(--muted);transition:color .15s;}
.nav a:hover,.nav a.active{color:var(--sage-deep);}

/* ---- buttons ---- */
.btn{display:inline-block;background:var(--ink);color:var(--bone);
  font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  padding:16px 32px;border-radius:2px;transition:background .15s;}
.btn:hover{background:var(--sage-deep);}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn.ghost:hover{background:var(--ink);color:var(--bone);}
.btn-row{display:flex;gap:15px;flex-wrap:wrap;}
.txtlink{color:var(--sage-deep);font-weight:700;
  border-bottom:1px solid var(--sage);padding-bottom:1px;}
.txtlink:hover{color:var(--ink);border-color:var(--ink);}

/* ---- eyebrow / headings ---- */
.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;
  font-weight:700;color:var(--sage-deep);}

/* ---- hero ---- */
.hero{padding:96px 0 92px;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.hero .eyebrow{margin-bottom:26px;}
.hero h1{font-family:'Fraunces',serif;font-weight:400;font-size:66px;
  line-height:1.05;letter-spacing:-.015em;margin-bottom:28px;}
.hero h1 em{font-style:italic;color:var(--sage-deep);}
.hero p.lead{font-size:20px;color:var(--muted);margin-bottom:34px;max-width:30em;}
.hero-img{position:relative;}
.hero-img img{width:100%;border-radius:3px;
  box-shadow:0 40px 70px -42px rgba(27,26,20,.55);}
.hero-img .stamp{position:absolute;bottom:-20px;left:-20px;background:var(--sage-deep);
  color:var(--bone);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;padding:13px 20px;border-radius:2px;}

/* ---- section scaffold ---- */
.section{padding:88px 0;}
.section.tight{padding:58px 0;}
.section.alt{background:var(--paper);
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.section.dark{background:var(--ink);color:var(--bone);}
.section-head{margin-bottom:50px;max-width:44em;}
.section-head .eyebrow{margin-bottom:18px;}
.section-head h2{font-family:'Fraunces',serif;font-weight:400;font-size:44px;
  line-height:1.1;letter-spacing:-.01em;}
.section.dark .section-head h2{color:var(--bone);}
.section.dark .eyebrow{color:var(--sage);}

/* ---- services ---- */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;
  background:var(--line);border:1px solid var(--line);}
.svc{background:var(--bone);padding:38px 36px;}
.section.alt .svc{background:var(--paper);}
.svc .num{font-family:'Fraunces',serif;font-size:20px;color:var(--sage-deep);
  margin-bottom:18px;}
.svc h3{font-family:'Fraunces',serif;font-weight:500;font-size:25px;
  margin-bottom:12px;}
.svc p{color:var(--muted);font-size:16px;}

/* ---- work grid ---- */
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.work-card{display:block;transition:transform .18s;}
.work-card:hover{transform:translateY(-4px);}
.work-card .thumb{overflow:hidden;border-radius:3px;
  box-shadow:0 24px 48px -34px rgba(27,26,20,.5);}
.work-card .thumb img{width:100%;display:block;}
.work-card .wc-meta{display:flex;justify-content:space-between;
  align-items:baseline;margin-top:20px;padding-bottom:14px;
  border-bottom:1px solid var(--line);}
.work-card h3{font-family:'Fraunces',serif;font-weight:400;font-size:27px;}
.work-card .cat{font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--sage-deep);}
.work-card p{color:var(--muted);font-size:15.5px;margin-top:12px;}

/* ---- featured work (home, list style) ---- */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:44px 40px;}

/* ---- split ---- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center;}
.split.rev .split-text{order:2;}
.split-text h2{font-family:'Fraunces',serif;font-weight:400;font-size:38px;
  line-height:1.12;margin-bottom:22px;}
.split-text p{color:var(--muted);margin-bottom:16px;}
.section.dark .split-text p{color:#C9C6B8;}
.split img{width:100%;border-radius:3px;
  box-shadow:0 30px 60px -42px rgba(27,26,20,.55);}

/* ---- approach steps ---- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.step .sn{font-family:'Fraunces',serif;font-size:34px;color:var(--sage);
  margin-bottom:14px;}
.step h3{font-size:17px;font-weight:700;margin-bottom:8px;}
.step p{font-size:14.5px;color:var(--muted);}
.section.dark .step p{color:#B7B4A6;}
.section.dark .step h3{color:var(--bone);}

/* ---- team ---- */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
.team-member{border-top:2px solid var(--sage-deep);padding-top:20px;}
.team-member h3{font-family:'Fraunces',serif;font-weight:500;font-size:23px;}
.team-member .role{font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--sage-deep);margin:7px 0 14px;}
.team-member p{font-size:15px;color:var(--muted);}

/* ---- figure ---- */
figure{margin:0;}
.figure-full img{width:100%;border-radius:3px;}
.figcap{font-size:13px;color:var(--muted);margin-top:12px;font-style:italic;}
.photo-band{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.photo-band img{width:100%;height:300px;object-fit:cover;border-radius:3px;}

/* ---- case study ---- */
.cs-head{padding:78px 0 56px;border-bottom:1px solid var(--line);}
.cs-head .eyebrow{margin-bottom:20px;}
.cs-head h1{font-family:'Fraunces',serif;font-weight:400;font-size:58px;
  line-height:1.06;letter-spacing:-.015em;margin-bottom:24px;}
.cs-head .summary{font-size:21px;color:var(--muted);max-width:34em;
  font-family:'Fraunces',serif;font-style:italic;line-height:1.5;}
.cs-facts{display:flex;gap:48px;margin-top:36px;flex-wrap:wrap;}
.cs-fact .fl{font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--sage-deep);margin-bottom:6px;}
.cs-fact .fv{font-size:15px;font-weight:600;}
.cs-section{padding:54px 0;}
.cs-section.board-wrap{padding:30px 0;}
.cs-text{max-width:720px;}
.cs-text .eyebrow{margin-bottom:14px;}
.cs-text h2{font-family:'Fraunces',serif;font-weight:500;font-size:30px;
  margin-bottom:16px;line-height:1.2;}
.cs-text p{color:var(--ink);margin-bottom:15px;}
.cs-board{margin:8px 0;}
.cs-board img{width:100%;border-radius:3px;border:1px solid var(--line-soft);}
.cs-board .bcap{font-size:12.5px;color:var(--muted);margin-top:10px;
  font-style:italic;text-align:center;}
.cs-quote{font-family:'Fraunces',serif;font-style:italic;font-weight:400;
  font-size:30px;line-height:1.4;color:var(--sage-deep);
  max-width:760px;margin:10px auto;text-align:center;}

/* ---- journal ---- */
.post-list{border-top:1px solid var(--line);}
.post-item{display:grid;grid-template-columns:160px 1fr auto;gap:30px;
  align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line);
  transition:padding-left .15s;}
.post-item:hover{padding-left:10px;}
.post-item .date{font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--muted);}
.post-item h3{font-family:'Fraunces',serif;font-weight:400;font-size:26px;
  line-height:1.25;}
.post-item p.excerpt{grid-column:2/3;color:var(--muted);font-size:15.5px;
  margin-top:8px;}
.post-item .arrow{color:var(--sage-deep);font-size:19px;}

.article-head{padding:74px 0 46px;text-align:center;
  border-bottom:1px solid var(--line);}
.article-head .date{font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  font-weight:700;color:var(--sage-deep);margin-bottom:20px;}
.article-head h1{font-family:'Fraunces',serif;font-weight:400;font-size:46px;
  line-height:1.1;letter-spacing:-.01em;max-width:17em;margin:0 auto;}
.article-body{padding:52px 0 20px;}
.article-body p{margin-bottom:22px;}
.article-body p.standfirst{font-size:21px;color:var(--muted);
  font-family:'Fraunces',serif;font-style:italic;line-height:1.5;
  margin-bottom:30px;}
.article-body h2{font-family:'Fraunces',serif;font-weight:500;font-size:27px;
  margin:40px 0 14px;}
.article-body blockquote{border-left:3px solid var(--sage);padding-left:24px;
  margin:30px 0;font-family:'Fraunces',serif;font-style:italic;font-size:22px;
  color:var(--ink);}
.article-foot{border-top:1px solid var(--line);padding-top:36px;margin-top:40px;}
.byline{display:flex;align-items:center;gap:15px;}
.byline img{width:52px;height:52px;border-radius:50%;object-fit:cover;}
.byline .nm{font-weight:700;}
.byline .rl{font-size:13.5px;color:var(--muted);}

/* ---- contact ---- */
.contact-card{background:var(--paper);border:1px solid var(--line);
  border-radius:5px;padding:50px;text-align:center;}
.contact-card .em{font-family:'Fraunces',serif;font-size:30px;margin:16px 0;}

/* ---- CTA strip ---- */
.cta{text-align:center;}
.cta .big{font-family:'Fraunces',serif;font-size:38px;line-height:1.18;
  margin:14px auto 26px;max-width:18em;}

/* ---- footer ---- */
.site-footer{background:var(--ink);color:#C9C6B8;}
.site-footer .wrap{padding-top:74px;padding-bottom:46px;}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:46px;}
.foot-brand .fb-name{font-family:'Fraunces',serif;font-size:25px;
  color:var(--bone);margin-bottom:5px;}
.foot-brand .fb-sub{font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  font-weight:700;color:var(--sage);margin-bottom:16px;}
.foot-brand p{font-size:14.5px;color:#9C9A8C;max-width:28em;}
.foot-col h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sage);font-weight:700;margin-bottom:16px;}
.foot-col a{display:block;font-size:14.5px;color:#C9C6B8;padding:6px 0;
  transition:color .15s;}
.foot-col a:hover{color:#fff;}
.foot-base{border-top:1px solid rgba(255,255,255,.1);margin-top:52px;
  padding-top:24px;display:flex;justify-content:space-between;font-size:13px;
  color:#86847A;}

/* ---- responsive ---- */
@media(max-width:880px){
  body{font-size:17px;}
  .wrap,.narrow{padding:0 22px;}
  .nav{gap:15px;}
  .nav a{font-size:11px;letter-spacing:.06em;}
  .hero{padding:50px 0 58px;}
  .hero-grid{grid-template-columns:1fr;gap:38px;}
  .hero-img{order:-1;}
  .hero h1{font-size:43px;}
  .section{padding:54px 0;}
  .section-head h2,.split-text h2{font-size:30px;}
  .svc-grid{grid-template-columns:1fr;}
  .work-grid,.feat,.split,.split.rev .split-text{grid-template-columns:1fr;}
  .split.rev .split-text{order:0;}
  .steps{grid-template-columns:1fr 1fr;gap:24px;}
  .team-grid{grid-template-columns:1fr;gap:26px;}
  .photo-band{grid-template-columns:1fr 1fr;}
  .photo-band img{height:210px;}
  .post-item{grid-template-columns:1fr;gap:6px;}
  .post-item .arrow{display:none;}
  .post-item p.excerpt{grid-column:1;}
  .cs-head h1{font-size:36px;}
  .cs-facts{gap:26px;}
  .article-head h1{font-size:32px;}
  .cs-quote,.cta .big{font-size:25px;}
  .foot-grid{grid-template-columns:1fr;gap:30px;}
  .foot-base{flex-direction:column;gap:8px;}
  .contact-card{padding:32px;}
}
