
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root{
  --ink:#151515;
  --paper:#f7f6f2;
  --muted:#77736d;
  --line:#d9d6cf;
  --soft:#eceae4;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:"DM Sans",Arial,sans-serif;
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
.site-header{
  position:sticky;top:0;z-index:20;
  background:rgba(247,246,242,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(21,21,21,.08);
}
.header-inner{
  width:min(var(--max),calc(100% - 64px));
  margin:auto;
  min-height:88px;
  display:flex;align-items:center;justify-content:space-between;
  gap:40px;
}
.brand{display:flex;align-items:center;gap:12px;font-weight:600;letter-spacing:.12em}
.brand-mark{
  width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;
  display:grid;place-items:center;font-family:"Playfair Display",serif;font-size:22px;
}
.brand-name{font-size:13px}
.main-nav{display:flex;align-items:center;gap:30px}
.nav-link{font-size:12px;letter-spacing:.1em;position:relative}
.nav-link:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--ink);transition:.25s}
.nav-link:hover:after,.nav-link.active:after{width:100%}

.hero{
  width:min(var(--max),calc(100% - 64px));margin:0 auto;
  min-height:calc(100vh - 89px);
  display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;
  padding:70px 0 100px;
}
.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:600;margin:0 0 24px}
.hero h1,.page-hero h1,.cta h2{
  font-family:"Playfair Display",serif;font-weight:500;
  font-size:clamp(58px,7.5vw,112px);line-height:.92;letter-spacing:-.045em;margin:0;
}
.hero h1 em,.page-hero h1 em,.cta h2 em{font-weight:500}
.hero-lead{font-size:18px;max-width:430px;color:#555;margin:34px 0}
.outline-button,.dark-button{
  display:inline-flex;align-items:center;gap:22px;
  padding:15px 21px;border:1px solid var(--ink);
  font-size:11px;letter-spacing:.13em;font-weight:600;
  transition:.25s;
}

.hero-copy .subhero-lead {
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #444;
  margin: 0 0 10px;
  padding-left: 20px;
  position: relative;
}

.subhero-lead::before {
  content: "01";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 9px;
  color: #999;
  letter-spacing: 0;
}

.subhero-lead:nth-child(2)::before {
  content: "02";
}

.subhero-lead:nth-child(3)::before {
  content: "03";
}

.subhero-lead:nth-child(4)::before {
  content: "04";
}

.subhero-lead:nth-child(5)::before {
  content: "05";
}

.outline-button:hover{background:var(--ink);color:var(--paper)}
.outline-button span,.dark-button span{font-size:17px}
.hero-image{align-self:stretch;display:flex;align-items:center}
.hero-image img{
  display:block;width:100%;max-height:700px;object-fit:cover;
  border-radius:28px;
}
.intro{
  width:min(var(--max),calc(100% - 64px));margin:0 auto;
  padding:110px 0;display:grid;grid-template-columns:1fr 2fr;gap:70px;
  border-top:1px solid var(--line);
}
.intro-label{font-size:11px;letter-spacing:.14em;color:var(--muted)}
.intro h2{
  font-family:"Playfair Display",serif;font-size:clamp(42px,5vw,72px);
  font-weight:500;line-height:1;letter-spacing:-.035em;margin:0 0 28px;
}
.intro h2 span{font-style:italic}
.intro p{max-width:620px;color:#64615b;font-size:18px}
.services{
  width:min(var(--max),calc(100% - 64px));margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.service-card{
  min-height:270px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;justify-content:space-between;
  transition:.25s;
}
.service-card:hover{background:var(--soft)}
.card-number{font-size:11px;color:var(--muted);letter-spacing:.12em}
.service-card h3{font-family:"Playfair Display",serif;font-size:30px;font-weight:500;line-height:1.05;margin:50px 0 10px}
.service-card p{color:var(--muted);font-size:14px;margin:0}
.cta{
  width:min(var(--max),calc(100% - 64px));margin:0 auto;
  padding:150px 0;display:flex;flex-direction:column;align-items:center;text-align:center;
}
.cta .eyebrow{color:var(--muted)}
.cta h2{font-size:clamp(64px,9vw,130px);margin-bottom:45px}
.dark-button{background:var(--ink);color:var(--paper)}
.dark-button:hover{background:transparent;color:var(--ink)}
.page-hero{
  width:min(var(--max),calc(100% - 64px));margin:0 auto;
  padding:70px 0 100px;border-bottom:1px solid var(--line);
}
.content-page{
  width:min(900px,calc(100% - 64px));margin:0 auto;
  padding:90px 0 140px;
}
.content-page h2{font-family:"Playfair Display",serif;font-size:48px;font-weight:500;line-height:1.05}
.content-page p{font-size:18px;color:#555;max-width:760px;margin-left: 50px;}
.content-page img{max-width:100%;height:auto;border-radius:24px}
.site-footer{
  background:#171717;color:#f7f6f2;padding:90px max(32px,calc((100vw - 1240px)/2)) 28px;
}
.content-page .button{margin-left: 50px;
}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px}
.footer-grid h3{font-family:"Playfair Display",serif;font-size:25px;font-weight:500}
.footer-grid p{color:#bdbbb5;font-size:14px}
.footer-bottom{margin-top:80px;padding-top:20px;border-top:1px solid #373737;color:#85827b;font-size:11px;letter-spacing:.1em}

@media(max-width:800px){
  .header-inner{width:min(var(--max),calc(100% - 36px));min-height:74px}
  .main-nav{gap:13px}
  .nav-link{font-size:10px}
  .brand-name{display:none}
  .hero,.intro{width:calc(100% - 36px);grid-template-columns:1fr;gap:45px}
  .hero{padding:65px 0 80px}
  .hero-image{max-height:500px}
  .intro{padding:80px 0}
  .services{width:calc(100% - 36px);grid-template-columns:1fr}
  .service-card{min-height:220px}
  .cta{width:calc(100% - 36px);padding:100px 0}
  .page-hero{width:calc(100% - 36px);padding:85px 0}
  .content-page{width:calc(100% - 36px);padding:65px 0 100px}
  .footer-grid{grid-template-columns:1fr;gap:25px}
}
