:root {
  --ink:#203128;
  --forest:#294b3a;
  --moss:#70816a;
  --sage:#cbd3bf;
  --cream:#f6f1e7;
  --paper:#fffdf8;
  --clay:#bc6e51;
  --line:rgba(32,49,40,.16);
  --serif:"Newsreader",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
}
a {
  color:inherit;
}
.skip {
  position:absolute;
  left:-999px;
  top:10px;
  background:#fff;
  padding:10px;
  z-index:99;
}
.skip:focus {
  left:10px;
}
h1,h2,h3,p {
  margin-top:0;
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.04;
}
h1 {
  font-size:clamp(3.4rem,7vw,7rem);
  letter-spacing:-.055em;
  margin-bottom:28px;
}
h2 {
  font-size:clamp(2.6rem,5vw,4.8rem);
  letter-spacing:-.045em;
  margin-bottom:28px;
}
h3 {
  font-size:1.7rem;
  letter-spacing:-.02em;
}
em {
  color:var(--clay);
  font-weight:400;
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:600;
  margin-bottom:22px;
}
.section {
  padding:110px max(6vw,24px);
}
.site-header {
  height:84px;
  position:absolute;
  z-index:20;
  width:100%;
  border-bottom:1px solid rgba(255,255,255,.28);
  color:white;
}
.nav-wrap {
  height:100%;
  display:flex;
  align-items:center;
  gap:44px;
  padding:0 max(4vw,22px);
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  font-family:var(--serif);
  font-size:1.05rem;
  line-height:.9;
  letter-spacing:.02em;
  white-space:nowrap;
}
.brand small {
  font-family:var(--sans);
  font-size:.57rem;
  text-transform:uppercase;
  letter-spacing:.15em;
}
.brand-mark {
  width:40px;
  height:40px;
  border:1px solid currentColor;
  border-radius:50% 50% 46% 54%;
  display:grid;
  place-items:center;
  font-size:1.35rem;
}
.site-header nav {
  display:flex;
  gap:30px;
  margin-left:auto;
}
.site-header nav a {
  text-decoration:none;
  font-size:.84rem;
}
.button {
  display:inline-block;
  background:var(--forest);
  color:white;
  padding:15px 24px;
  text-decoration:none;
  border:1px solid var(--forest);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:600;
  transition:.2s;
}
.button:hover {
  background:#173326;
}
.button-small {
  padding:11px 17px;
  background:white;
  color:var(--forest);
  border-color:white;
}
.menu {
  display:none;
}
.hero {
  min-height:780px;
  display:grid;
  grid-template-columns:1.22fr .78fr;
  background:var(--cream);
}
.hero-copy {
  background:var(--forest);
  color:white;
  padding:190px max(7vw,50px) 80px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-copy .lede {
  font-size:1.2rem;
  max-width:620px;
  color:#e8eee8;
  margin-bottom:38px;
}
.actions {
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap;
}
.hero .button {
  background:var(--paper);
  color:var(--forest);
  border-color:var(--paper);
}
.text-link {
  display:inline-block;
  font-weight:600;
  font-size:.83rem;
  text-transform:uppercase;
  letter-spacing:.09em;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.text-link span {
  margin-left:7px;
}
.trust {
  display:flex;
  gap:34px;
  padding:0;
  margin:70px 0 0;
  list-style:none;
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#d5ded5;
}
.trust li:before {
  content:"✓";
  margin-right:8px;
}
.hero-art {
  position:relative;
  overflow:hidden;
  background:#d9cebb;
  display:flex;
  align-items:flex-end;
  padding:65px;
}
.hero-art:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(160deg,#ded5c4 0 45%,#aebba2 45% 70%,#819377 70%);
}
.sun {
  position:absolute;
  width:170px;
  height:170px;
  border-radius:50%;
  background:#d98a68;
  top:18%;
  right:12%;
  opacity:.88;
}
.arch {
  position:absolute;
  border:2px solid rgba(255,255,255,.65);
  border-bottom:0;
  border-radius:50% 50% 0 0;
}
.arch-one {
  width:55%;
  height:44%;
  left:18%;
  bottom:0;
}
.arch-two {
  width:36%;
  height:30%;
  left:28%;
  bottom:0;
}
.hero-art p {
  position:relative;
  z-index:2;
  color:white;
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.1;
}
.sprig {
  position:absolute;
  left:17%;
  top:21%;
  height:180px;
  width:90px;
  border-left:2px solid var(--forest);
  transform:rotate(-12deg);
}
.sprig i {
  position:absolute;
  width:48px;
  height:22px;
  background:var(--forest);
  border-radius:100% 0 100% 0;
}
.sprig i:nth-child(1) {
  top:15px;
  left:-4px;
}
.sprig i:nth-child(2) {
  top:52px;
  left:-48px;
  transform:scaleX(-1);
}
.sprig i:nth-child(3) {
  top:88px;
  left:-3px;
}
.sprig i:nth-child(4) {
  top:125px;
  left:-47px;
  transform:scaleX(-1);
}
.split {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:12vw;
  align-items:start;
}
.split h2 {
  max-width:750px;
}
.split>div {
  padding-top:20px;
}
.split>div p {
  font-size:1.08rem;
  margin-bottom:28px;
}
.services {
  background:var(--cream);
}
.section-head {
  display:flex;
  justify-content:space-between;
  gap:50px;
  align-items:end;
  margin-bottom:55px;
}
.section-head>p {
  max-width:470px;
}
.section-head h2 {
  margin-bottom:0;
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.service-grid article {
  padding:36px 30px 42px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  min-height:340px;
  display:flex;
  flex-direction:column;
}
.service-grid article>span,.city-no {
  font-size:.72rem;
  letter-spacing:.15em;
  color:var(--clay);
}
.service-grid h3 {
  margin-top:56px;
}
.service-grid p {
  font-size:.91rem;
}
.service-grid a,.posts a {
  margin-top:auto;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:600;
}
.specialty {
  background:var(--forest);
  color:white;
  margin-top:55px;
  padding:55px;
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:65px;
  align-items:center;
}
.specialty h3 {
  font-size:2.6rem;
  margin-bottom:15px;
}
.specialty p {
  color:#dbe4dc;
}
.specialty-links {
  display:flex;
  flex-direction:column;
  gap:13px;
}
.button-light {
  background:var(--paper);
  color:var(--forest);
  border-color:var(--paper);
  text-align:center;
}
.button-outline {
  background:transparent;
  border-color:#bfcdbf;
  text-align:center;
}
.extras {
  text-align:center;
  padding:30px 10px 0;
}
.extras p {
  margin:0;
}
.process {
  background:var(--paper);
}
.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.steps article {
  border-top:1px solid var(--ink);
  padding:25px 4vw 20px 0;
}
.steps b {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid var(--clay);
  border-radius:50%;
  color:var(--clay);
  margin-bottom:50px;
}
.steps p {
  max-width:330px;
}
.about {
  background:var(--paper);
  padding-top:0;
}
.about-panel {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  min-height:650px;
}
.about-art {
  background:linear-gradient(145deg,#c9d1bd,#7d9278);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:55px;
  color:white;
  overflow:hidden;
}
.about-art:before,.about-art:after {
  content:"";
  position:absolute;
  border:2px solid rgba(255,255,255,.5);
  border-radius:50% 50% 0 0;
  border-bottom:0;
  bottom:0;
}
.about-art:before {
  width:70%;
  height:65%;
  right:-5%;
}
.about-art:after {
  width:43%;
  height:40%;
  right:8%;
}
.about-art span {
  font-family:var(--serif);
  font-size:6rem;
  line-height:.8;
  z-index:1;
}
.about-art small {
  z-index:1;
  text-transform:uppercase;
  letter-spacing:.13em;
}
.about-copy {
  background:var(--forest);
  color:white;
  padding:70px 7vw;
}
.about-copy>p {
  color:#dbe4dc;
  max-width:650px;
}
.team-list {
  border-top:1px solid rgba(255,255,255,.3);
  margin:40px 0;
}
.team-list p {
  display:flex;
  justify-content:space-between;
  margin:0;
  padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.22);
}
.team-list strong {
  font-weight:500;
}
.team-list span {
  font-size:.8rem;
  color:#c9d5ca;
}
.light {
  color:white;
}
.location-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.location-grid article {
  padding:38px;
  border:1px solid var(--line);
  min-height:310px;
}
.location-grid h3 {
  font-size:2.5rem;
  margin-top:35px;
}
.location-grid address {
  font-style:normal;
  margin-bottom:30px;
}
.location-grid .note {
  font-size:.82rem;
  color:#657067;
}
.virtual {
  background:var(--sage);
}
.insurance {
  background:#e4dfd2;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10vw;
}
.insurance>div:last-child {
  font-size:1.05rem;
}
.fine {
  font-size:.8rem!important;
  color:#5a665f;
}
.journal {
  background:var(--paper);
}
.posts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:25px;
}
.posts article {
  display:flex;
  flex-direction:column;
}
.post-art {
  height:250px;
  margin-bottom:23px;
  position:relative;
  overflow:hidden;
}
.post-art:before,.post-art:after {
  content:"";
  position:absolute;
}
.art-one {
  background:#d7c7b4;
}
.art-one:before {
  width:170px;
  height:170px;
  border-radius:50%;
  background:#809071;
  left:22%;
  top:16%;
}
.art-one:after {
  width:110px;
  height:180px;
  border:2px solid #fff;
  border-radius:55px;
  right:12%;
  top:30%;
}
.art-two {
  background:#a7b39b;
}
.art-two:before {
  width:160px;
  height:220px;
  background:#e8ddca;
  border-radius:50% 50% 10px 10px;
  left:25%;
  top:20%;
}
.art-two:after {
  width:70px;
  height:70px;
  background:var(--clay);
  border-radius:50%;
  right:12%;
  top:12%;
}
.art-three {
  background:#c88667;
}
.art-three:before {
  width:180px;
  height:180px;
  border:2px solid #f8eede;
  border-radius:50%;
  left:22%;
  top:15%;
}
.art-three:after {
  width:2px;
  height:240px;
  background:#f8eede;
  left:50%;
  top:0;
  transform:rotate(35deg);
}
.tag {
  font-size:.69rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#778078;
}
.posts h3 {
  font-size:1.55rem;
  line-height:1.15;
}
.faq {
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:10vw;
  background:var(--cream);
}
.accordion details {
  border-top:1px solid var(--line);
  padding:22px 0;
}
.accordion details:last-child {
  border-bottom:1px solid var(--line);
}
summary {
  font-family:var(--serif);
  font-size:1.45rem;
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
}
summary:after {
  content:"+";
  font-family:var(--sans);
  font-weight:300;
}
.accordion details[open] summary:after {
  content:"−";
}
.accordion details p {
  max-width:700px;
  margin:15px 40px 0 0;
}
.cta {
  text-align:center;
  background:var(--clay);
  color:white;
}
.cta h2 {
  font-size:clamp(3rem,6vw,6rem);
  margin-bottom:20px;
}
.cta em {
  color:#f5dfd2;
}
.cta>p:not(.eyebrow) {
  font-size:1.1rem;
}
.center {
  justify-content:center;
  margin-top:35px;
}
.button-outline-light {
  background:transparent;
  border-color:white;
}
.cta .button-light:hover {
  background:#f3eadf;
}
footer {
  background:#18271f;
  color:#dbe4dc;
  padding:70px max(6vw,24px) 25px;
}
.footer-main {
  display:grid;
  grid-template-columns:1.5fr .65fr 1fr 1fr;
  gap:50px;
}
.footer-main>div:first-child p {
  max-width:350px;
  margin-top:30px;
  color:#aab6ad;
}
.footer-main h3 {
  font-family:var(--sans);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  color:#aab6ad;
}
.footer-main>div:not(:first-child) a {
  display:block;
  text-decoration:none;
  margin:10px 0;
  font-size:.9rem;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.15);
  margin-top:60px;
  padding-top:22px;
  font-size:.7rem;
  color:#8f9b92;
}
.brand-footer {
  color:white;
}
@media(max-width:1050px) {
  .site-header nav {
    display:none;
  }
  .menu {
    display:block;
    margin-left:auto;
    border:1px solid currentColor;
    background:none;
    color:inherit;
    padding:8px 12px;
  }
  .site-header nav.open {
    display:flex;
    position:absolute;
    top:84px;
    left:0;
    width:100%;
    background:var(--forest);
    padding:25px;
    flex-direction:column;
  }
  .hero {
    grid-template-columns:1fr;
  }
  .hero-art {
    display:none;
  }
  .service-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .specialty {
    grid-template-columns:1fr;
  }
  .nav-cta {
    display:none;
  }
  .footer-main {
    grid-template-columns:1fr 1fr;
  }
  .about-panel {
    grid-template-columns:1fr 1.2fr;
  }
}
@media(max-width:720px) {
  .section {
    padding:75px 22px;
  }
  .hero {
    min-height:700px;
  }
  .hero-copy {
    padding:150px 24px 70px;
  }
  h1 {
    font-size:3.7rem;
  }
  .trust {
    flex-direction:column;
    gap:10px;
    margin-top:45px;
  }
  .split,.insurance,.faq {
    grid-template-columns:1fr;
    gap:30px;
  }
  .section-head {
    display:block;
  }
  .service-grid,.steps,.location-grid,.posts {
    grid-template-columns:1fr;
  }
  .service-grid article {
    min-height:260px;
  }
  .service-grid h3 {
    margin-top:25px;
  }
  .specialty {
    padding:35px 25px;
  }
  .about {
    padding:0;
  }
  .about-panel {
    grid-template-columns:1fr;
  }
  .about-art {
    min-height:380px;
  }
  .about-copy {
    padding:60px 25px;
  }
  .footer-main {
    grid-template-columns:1fr;
  }
  .footer-bottom {
    display:block;
  }
  .nav-wrap {
    padding:0 20px;
  }
  .posts {
    gap:50px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    transition:none!important;
  }
}
