:root {
  --ink:#292b0b;
  --lime:#e4ea78;
  --cream:#fffef2;
  --pale:#fffed1
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'DM Sans',Arial,sans-serif;
  font-size:18px;
  line-height:1.55
}
a {
  color:inherit
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2,h3,.brand,.serif {
  font-family:'Libre Caslon Display',Georgia,serif;
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.025em
}
h1 {
  font-size:clamp(3.5rem,5vw,6rem);
  margin:.2em 0 .15em;
  max-width:1400px
}
h2 {
  font-size:clamp(2.6rem,4vw,4.8rem);
  margin-bottom:.3em
}
h3 {
  font-size:clamp(1.6rem,2vw,2.2rem);
  margin-bottom:.35em
}
p {
  max-width:42em
}
header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:22px clamp(22px,4vw,68px);
  background:var(--cream);
  position:relative;
  z-index:3
}
.brand {
  font-size:clamp(1.3rem,2vw,2rem);
  white-space:nowrap;
  text-decoration:none
}
nav {
  display:flex;
  align-items:center;
  gap:clamp(15px,2.4vw,38px);
  font-size:16px
}
nav a {
  text-decoration:none
}
nav a:hover,.text-link:hover {
  text-decoration:underline;
  text-underline-offset:5px
}
.pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--ink);
  color:var(--cream);
  border:1px solid var(--ink);
  border-radius:100px;
  padding:15px 31px;
  text-decoration:none;
  font-size:16px;
  line-height:1.2;
  transition:background .2s,color .2s
}
.pill:hover {
  background:transparent;
  color:var(--ink)
}
.menu-toggle {
  display:none
}
section {
  scroll-margin-top:20px
}
.hero {
  background:var(--lime);
  min-height:690px;
  padding:clamp(70px,10vw,160px) clamp(22px,4vw,68px) 90px;
  display:flex;
  flex-direction:column;
  justify-content:end
}
.eyebrow {
  font-family:'Libre Caslon Display',Georgia,serif;
  font-size:clamp(1.7rem,2.5vw,2.7rem);
  line-height:1.2
}
.hero .lede {
  font-family:'Libre Caslon Display',Georgia,serif;
  font-size:clamp(1.5rem,2.3vw,2.6rem);
  line-height:1.18;
  max-width:1000px
}
.hero .pill {
  align-self:flex-start;
  margin-top:20px
}
.section-pad {
  padding:clamp(75px,10vw,160px) clamp(22px,4vw,68px)
}
.intro {
  background:var(--pale);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8vw;
  align-items:end
}
.intro p {
  font-size:clamp(1.1rem,1.45vw,1.35rem)
}
.photo {
  width:100%;
  height:clamp(340px,50vw,710px);
  object-fit:cover;
  background:#d6d3a2
}
.services {
  background:var(--pale)
}
.section-heading {
  max-width:1020px
}
.service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px,8vw,150px);
  margin-top:65px
}
.service {
  border-top:1px solid var(--ink);
  padding-top:30px
}
.service p {
  max-width:560px
}
.small-label {
  text-transform:uppercase;
  font-size:14px;
  letter-spacing:.1em;
  font-weight:600
}
.wide-cta {
  margin-top:70px;
  font-size:18px;
  padding:18px 36px
}
.image-band {
  height:clamp(260px,38vw,560px);
  background:#d6d3a2;
  overflow:hidden
}
.image-band img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 45%
}
.why {
  background:var(--cream);
  text-align:center
}
.why h2 {
  max-width:1300px;
  margin-left:auto;
  margin-right:auto
}
.why p {
  margin-left:auto;
  margin-right:auto;
  font-size:clamp(1.1rem,1.45vw,1.35rem)
}
.prices {
  background:var(--lime)
}
.prices-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8vw
}
.price-note {
  border-top:1px solid var(--ink);
  padding-top:26px
}
.about {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8vw;
  background:var(--cream)
}
.about p {
  font-size:clamp(1.1rem,1.45vw,1.35rem)
}
.contact {
  background:var(--lime);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8vw
}
.contact p {
  font-size:clamp(1.1rem,1.45vw,1.35rem)
}
.contact-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:24px
}
.contact-actions .pill {
  min-width:260px
}
.text-link {
  font-size:clamp(1.1rem,1.8vw,1.5rem);
  overflow-wrap:anywhere
}
footer {
  padding:55px clamp(22px,4vw,68px);
  background:var(--pale);
  display:flex;
  justify-content:space-between;
  gap:30px
}
.footer-brand {
  font-family:'Libre Caslon Display',Georgia,serif;
  font-size:clamp(1.6rem,2.2vw,2.5rem)
}
footer p {
  margin:8px 0 0;
  font-size:16px
}
@media(max-width:850px) {
  header {
    align-items:flex-start
  }
  .brand {
    white-space:normal;
    max-width:65%
  }
  .menu-toggle {
    display:block;
    background:none;
    border:1px solid var(--ink);
    border-radius:100px;
    padding:9px 17px;
    color:var(--ink);
    font:inherit;
    font-size:15px
  }
  nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--cream);
    padding:22px;
    flex-direction:column;
    align-items:stretch;
    box-shadow:0 10px 15px #292b0b12
  }
  nav.open {
    display:flex
  }
  nav .pill {
    align-self:flex-start
  }
  .hero {
    min-height:620px
  }
  .intro,.service-grid,.prices-inner,.about,.contact {
    grid-template-columns:1fr;
    gap:40px
  }
  .intro .photo {
    height:420px
  }
  .contact-actions {
    align-items:flex-start
  }
  footer {
    flex-direction:column
  }
}
@media(max-width:500px) {
  body {
    font-size:16px
  }
  .hero {
    min-height:550px
  }
  .hero h1 {
    font-size:clamp(3.1rem,11vw,4.3rem);
    overflow-wrap:anywhere
  }
  .section-pad {
    padding-top:80px;
    padding-bottom:80px
  }
  .intro .photo {
    height:330px
  }
  .wide-cta {
    margin-top:35px
  }
  footer {
    padding-top:45px;
    padding-bottom:45px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  * {
    transition:none!important
  }
}

.price-book {
  margin-top:20px
}
