:root {
  --paper:#f8f9f3;
  --white:#fff;
  --ink:#17342d;
  --muted:#637168;
  --green:#517c21;
  --lime:#a0d060;
  --navy:#122e39;
  --line:#dce2d5;
  --radius:22px;
  --font:'DM Sans',sans-serif;
  --display:'Manrope',sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  line-height:1.6
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,summary,textarea {
  -webkit-tap-highlight-color:transparent
}
button,summary,select {
  cursor:pointer
}
img {
  max-width:100%;
  display:block
}
button {
  color:inherit
}
::selection {
  background:var(--lime);
  color:var(--ink)
}
:focus-visible {
  outline:3px solid #0077b9;
  outline-offset:5px
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-family:var(--display);
  font-weight:600
}
h1,h2 {
  letter-spacing:-.055em;
  line-height:1.1;
  text-wrap:balance
}
h2 {
  font-size:clamp(36px,4vw,58px)
}
h3 {
  letter-spacing:-.035em;
  line-height:1.3
}
.eyebrow {
  font-size:14px;
  letter-spacing:.12em;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:9px
}
.dot {
  display:inline-block;
  width:7px;
  height:7px;
  background:var(--green);
  border-radius:50%;
  flex-shrink:0
}
.sr-only {
  position:absolute;
  clip:rect(0,0,0,0);
  width:1px;
  height:1px;
  overflow:hidden
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  padding:12px;
  background:var(--white);
  z-index:100;
  opacity:0;
  pointer-events:none
}
.skip-link:focus {
  top:10px;
  opacity:1;
  pointer-events:auto
}
.announcement {
  background:var(--ink);
  color:#f5f9ed;
  min-height:35px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:6px max(5vw,24px);
  font-size:14px;
  letter-spacing:.025em
}
.announcement a {
  display:flex;
  gap:20px
}
.header {
  height:100px;
  max-width:1600px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5vw;
  position:relative;
  z-index:20;
  background:var(--paper)
}
.brand {
  width:218px;
  display:block;
  flex-shrink:0
}
.brand img {
  width:100%;
  height:auto
}
.header nav {
  display:flex;
  gap:32px;
  align-items:center;
  font-size:16px;
  font-weight:500
}
.header nav>a:not(.button) {
  position:relative;
  padding:12px 0
}
.header nav>a:not(.button):after {
  content:'';
  height:1px;
  position:absolute;
  bottom:7px;
  left:0;
  right:100%;
  background:var(--ink);
  transition:right .2s
}
.header nav>a:hover:after {
  right:0
}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  background:var(--ink);
  border:1px solid var(--ink);
  color:var(--white);
  border-radius:7px;
  padding:17px 22px;
  font-weight:600;
  font-size:16px;
  line-height:1.4;
  transition:background .2s,transform .2s,box-shadow .2s;
  min-height:52px
}
.button:hover {
  background:#295243;
  box-shadow:0 6px 18px #17342d1a;
  transform:translateY(-2px)
}
.button span {
  font-size:21px;
  font-weight:400;
  line-height:1
}
.button.small {
  padding:12px 17px;
  min-height:44px;
  gap:23px
}
.menu-toggle {
  display:none
}
.hero {
  max-width:1600px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.03fr 1fr;
  padding:24px 3vw 48px 5vw;
  gap:35px;
  align-items:center;
  min-height:645px
}
.hero-copy {
  padding:35px 0 42px;
  animation:enter .9s both
}
.hero .eyebrow {
  font-size:14px;
  margin-bottom:28px
}
.hero h1 {
  font-size:clamp(48px,4.6vw,72px);
  font-weight:600;
  line-height:1.12;
  letter-spacing:-.05em
}
.green-text {
  color:var(--green)
}
.hero-description {
  max-width:460px;
  color:var(--muted);
  font-size:16px;
  line-height:1.8;
  margin-top:26px
}
.hero-actions {
  display:flex;
  gap:24px;
  align-items:center;
  margin-top:31px;
  flex-wrap:wrap
}
.hero-actions .button {
  font-size:14px;
  padding:17px 19px;
  gap:23px
}
.text-link {
  font-size:16px;
  font-weight:600;
  display:inline-flex;
  gap:24px;
  align-items:center;
  min-height:44px
}
.text-link>span {
  font-size:21px;
  transition:transform .25s
}
.text-link:hover>span {
  transform:translate(3px,-3px)
}
.value-strip {
  border-block:1px solid var(--line);
  padding:25px 5vw;
  max-width:1600px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:50px
}
.value-strip>span {
  font-size:14px;
  color:var(--muted);
  max-width:130px;
  line-height:1.5
}
.value-strip ul {
  font-size:16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex:1;
  gap:16px
}
.section {
  max-width:1440px;
  margin:auto;
  padding:100px 6vw;
  scroll-margin-top:20px
}
.section-top {
  display:flex;
  justify-content:space-between;
  margin-bottom:32px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  gap:65px;
  align-items:end;
  margin-bottom:43px
}
.section-heading h2 {
  flex:1
}
.muted {
  color:#7a8878
}
.section-heading>p {
  max-width:370px;
  color:var(--muted);
  font-size:16px;
  padding-bottom:5px
}
.service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.service-feature {
  background:#eaf0df;
  border:1px solid #dfe7d3;
  border-radius:var(--radius);
  padding:29px 36px 27px;
  overflow:hidden
}
.service-number {
  font-size:14px;
  color:#526249
}
.service-feature h3 {
  font-size:27px;
  margin:9px 0 10px
}
.service-feature p {
  font-size:16px;
  color:#526249;
  max-width:380px
}
.service-feature .text-link {
  margin-top:12px;
  justify-content:space-between;
  width:100%;
  border-top:1px solid #cbd8bc;
  padding-top:15px
}
.service-stack {
  display:grid;
  gap:0;
  border-top:1px solid var(--line)
}
.service-card {
  padding:30px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:start;
  gap:22px
}
.line-icon {
  display:block;
  flex-shrink:0;
  width:32px;
  height:32px;
  padding:2px;
  color:var(--green)
}
.line-icon svg {
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round
}
.service-kicker {
  font-size:12px;
  letter-spacing:.08em;
  font-weight:600;
  color:var(--green)
}
.service-card h3 {
  font-size:23px;
  margin:9px 0 13px
}
.service-card p {
  font-size:16px;
  color:var(--muted);
  line-height:1.8
}
.extras {
  margin-top:44px;
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:80px;
  padding-top:39px;
  border-top:1px solid var(--line)
}
.extras h3 {
  font-size:29px;
  margin-top:16px
}
.extra-links a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:16px;
  padding:13px 0;
  border-bottom:1px solid var(--line);
  transition:padding .2s
}
.extra-links a:hover {
  padding-left:9px
}
.extra-links a span {
  font-size:22px
}
.process {
  background:var(--ink);
  color:var(--paper);
  position:relative;
  overflow:hidden
}
.process-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  position:relative
}
.process-intro .eyebrow {
  color:#b9ceab
}
.process-intro h2 {
  font-size:60px;
  margin:28px 0 25px
}
.process-intro h2>span {
  color:var(--lime)
}
.process-intro>p:not(.eyebrow) {
  max-width:330px;
  font-size:16px;
  color:#c2d0c8
}
.text-link.light {
  margin-top:28px;
  color:var(--paper)
}
.steps {
  padding-top:13px
}
.step {
  display:flex;
  gap:27px;
  border-top:1px solid #ffffff29;
  padding:30px 0
}
.step>span {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  font-size:14px;
  width:33px;
  height:33px;
  border:1px solid #ffffff40;
  border-radius:50%;
  color:var(--lime)
}
.step h3 {
  font-size:24px;
  margin:0 0 12px
}
.step p {
  font-size:16px;
  color:#c2d0c8;
  max-width:330px;
  line-height:1.8
}
.benefits {
  display:grid;
  grid-template-columns:.95fr 1fr;
  gap:95px;
  align-items:center
}
.benefits-photo {
  position:relative;
  height:555px
}
.benefits-photo img {
  height:100%;
  width:100%;
  object-fit:cover;
  border-radius:10px;
  object-position:center 55%
}
.benefits-copy h2 {
  margin:23px 0
}
.benefits-copy>p:not(.eyebrow) {
  font-size:16px;
  color:var(--muted);
  max-width:380px;
  margin-bottom:28px
}
.benefit-item {
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:20px
}
.benefit-item h3 {
  font-size:20px;
  margin-bottom:7px;
  letter-spacing:-.02em
}
.benefit-item p {
  font-size:16px;
  color:var(--muted);
  max-width:340px
}
.about {
  background:#e9efdf
}
.about-inner {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:90px;
  padding-block:80px
}
.about h2 {
  font-size:58px;
  margin-top:25px
}
.about-story {
  position:relative;
  padding-top:12px
}
.about-story>p:first-of-type {
  font-family:var(--display);
  font-size:24px;
  line-height:1.5;
  letter-spacing:-.035em;
  max-width:480px
}
.about-story .story-small {
  font-size:16px;
  color:#56654e;
  margin-top:22px;
  max-width:440px
}
.about-story strong {
  display:block;
  font-size:16px;
  margin:20px 0 8px
}
.faq {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:100px
}
.faq h2 {
  font-size:43px;
  margin:22px 0 25px
}
.faq-heading>p:not(.eyebrow) {
  color:var(--muted);
  font-size:16px
}
.faq-list {
  border-top:1px solid var(--line)
}
details {
  border-bottom:1px solid var(--line)
}
summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:23px 0;
  font-size:16px;
  font-weight:500;
  min-height:68px
}
summary::-webkit-details-marker {
  display:none
}
summary>span {
  font-size:22px;
  font-weight:400;
  transition:transform .3s
}
details[open] summary>span {
  transform:rotate(45deg)
}
.faq-answer {
  font-size:16px;
  color:var(--muted);
  line-height:1.8;
  padding:0 35px 23px 0;
  animation:enter .35s ease-out
}
.contact {
  background:var(--navy);
  color:var(--paper);
  margin-inline:3vw;
  max-width:none;
  border-radius:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  padding:75px 6vw;
  position:relative;
  overflow:hidden
}
.contact-intro {
  position:relative;
  z-index:1
}
.contact .eyebrow {
  color:#b8d69a;
  font-size:14px
}
.contact h2 {
  font-size:54px;
  margin:25px 0 23px
}
.contact-intro>p:not(.eyebrow) {
  color:#c6d0d1;
  font-size:16px
}
.contact-phone {
  font-family:var(--display);
  font-size:29px;
  display:inline-flex;
  gap:35px;
  align-items:center;
  border-bottom:1px solid #ffffff4d;
  padding:22px 0 10px;
  letter-spacing:-.03em
}
.contact-phone span {
  color:var(--lime);
  font-size:33px
}
.contact-caption {
  display:block;
  font-size:14px;
  color:#c6d0d1;
  margin-top:12px
}
.contact-panel {
  background:var(--paper);
  color:var(--ink);
  border-radius:15px;
  padding:30px;
  position:relative;
  z-index:1
}
.contact-panel h3 {
  font-size:22px
}
.contact-panel>p {
  font-size:16px;
  color:var(--muted);
  margin-top:10px;
  max-width:320px
}
form {
  margin-top:22px
}
label {
  display:block;
  font-size:14px;
  font-weight:600;
  margin:16px 0 7px
}
label span {
  font-weight:400;
  color:var(--muted)
}
input,select,textarea {
  background:#fff;
  border:1px solid #cdd6c7;
  border-radius:5px;
  padding:12px;
  width:100%;
  font-size:16px;
  color:var(--ink);
  min-height:47px
}
input::placeholder {
  color:#70796c
}
form>.button {
  margin-top:21px;
  width:100%;
  background:var(--lime);
  color:var(--ink);
  border-color:var(--lime)
}
form>.button:hover {
  background:#b6e477
}
.form-note {
  font-size:14px;
  color:var(--muted);
  margin-top:12px;
  line-height:1.7
}
#inquiry-result {
  border-top:1px solid var(--line);
  margin-top:20px;
  padding-top:16px
}
#inquiry-result>p {
  font-size:14px;
  margin-bottom:10px
}
textarea {
  resize:vertical;
  font-size:14px
}
.message-actions {
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap
}
.copy-button {
  background:transparent;
  border:0;
  text-decoration:underline;
  font-size:14px;
  min-height:44px
}
.footer {
  max-width:1440px;
  padding:53px 6vw 24px;
  margin:auto
}
.footer-top {
  display:flex;
  align-items:center;
  gap:65px;
  padding-bottom:42px
}
.footer-top .brand {
  width:220px
}
.footer-top p {
  font-size:16px;
  line-height:1.5;
  color:var(--muted)
}
.back-top {
  margin-left:auto;
  border:1px solid var(--line);
  border-radius:50%;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  font-size:20px;
  transition:background .2s
}
.back-top:hover {
  background:#eaf0df
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:12px;
  color:var(--muted);
  padding-top:23px;
  border-top:1px solid var(--line)
}
.footer-bottom nav {
  display:flex;
  gap:22px
}
.footer-bottom nav a {
  display:flex;
  align-items:center;
  min-height:44px
}
.reveal {
  opacity:1;
  transform:none
}
.motion-ready .reveal {
  opacity:0;
  transform:translateY(23px);
  transition:opacity .75s,transform .75s
}
.motion-ready .reveal.visible {
  opacity:1;
  transform:translateY(0)
}
@keyframes enter {
  from {
    opacity:0;
    transform:translateY(18px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@media(min-width:1600px) {
  .contact {
    max-width:1440px;
    margin:auto
  }
  .hero h1 {
    font-size:76px
  }
}
@media(max-width:1150px) {
  .header nav {
    gap:23px
  }
  .brand {
    width:190px
  }
  .hero {
    gap:20px
  }
  .hero h1 {
    font-size:52px
  }
    .hero-actions {
    gap:12px
  }
  .hero-actions .button {
    gap:15px
  }
  .hero .text-link {
    font-size:14px
  }
    .section {
    padding:80px 5vw
  }
  .process-inner,.benefits,.faq {
    gap:55px
  }
  .service-card {
    padding:26px 0;
    gap:16px
  }
  .service-card h3 {
    font-size:21px
  }
  .value-strip {
    gap:30px
  }
  .value-strip ul {
    font-size:14px;
    gap:10px
  }
  .value-strip>span {
    max-width:100px
  }
  .contact {
    gap:40px;
    padding:65px 5vw
  }
  .contact h2 {
    font-size:45px
  }
  .contact-panel {
    padding:26px
  }
}
@media(max-width:850px) {
  html {
    scroll-padding-top:30px
  }
  .header {
    height:84px
  }
  .header .brand {
    width:190px
  }
  .menu-toggle {
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border:1px solid var(--line);
    border-radius:7px;
    background:transparent
  }
  .menu-icon,.menu-icon:before {
    width:19px;
    height:1px;
    background:var(--ink);
    display:block;
    position:relative;
    transition:transform .2s
  }
  .menu-icon:before {
    content:'';
    position:absolute;
    top:6px
  }
  .menu-toggle[aria-expanded=true] .menu-icon {
    transform:rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] .menu-icon:before {
    transform:rotate(-90deg);
    top:0
  }
  .header nav {
    display:none;
    position:absolute;
    top:76px;
    left:5vw;
    right:5vw;
    background:var(--paper);
    border:1px solid var(--line);
    padding:22px;
    border-radius:12px;
    box-shadow:0 18px 35px #132e231a
  }
  .header nav.open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:4px
  }
  .hero {
    padding-top:10px;
    padding-bottom:35px;
    grid-template-columns:1fr 1fr;
    gap:28px;
    min-height:0
  }
  .hero h1 {
    font-size:42px
  }
  .hero .eyebrow {
    font-size:12px;
    letter-spacing:.06em;
    gap:6px
  }
  .hero-description {
    font-size:16px
  }
            .hero-copy {
    padding:20px 0
  }
  .hero .eyebrow {
    margin-bottom:22px
  }
  .hero-actions {
    margin-top:25px
  }
  .value-strip {
    display:block;
    padding-block:22px
  }
  .value-strip>span {
    display:block;
    max-width:none;
    margin-bottom:12px
  }
  .value-strip ul {
    font-size:14px;
    gap:9px;
    flex-wrap:wrap;
    justify-content:start
  }
  .section-heading {
    gap:35px
  }
  .section-heading>p {
    max-width:250px;
    font-size:16px
  }
  .service-feature {
    padding:25px
  }
  .service-card {
    display:block;
    padding:26px 0
  }
  .line-icon {
    margin-bottom:14px
  }
  .service-card h3 {
    font-size:19px
  }
  .service-card p {
    font-size:16px
  }
  .service-feature h3 {
    font-size:24px
  }
      .extras {
    gap:40px
  }
  .process-inner {
    gap:40px
  }
  .process-intro h2 {
    font-size:47px
  }
  .process-intro>p:not(.eyebrow) {
    font-size:16px
  }
  .steps .step {
    gap:15px;
    padding:24px 0
  }
  .step h3 {
    font-size:22px
  }
  .step p {
    font-size:16px
  }
  .benefits {
    gap:40px
  }
  .benefits-photo {
    height:550px
  }
  .benefits-copy h2 {
    font-size:37px
  }
  .benefits-copy>.eyebrow {
    font-size:12px
  }
  .benefit-item h3 {
    font-size:19px
  }
  .about-inner {
    gap:40px
  }
  .about h2 {
    font-size:48px
  }
  .about-story>p:first-of-type {
    font-size:21px
  }
  .faq {
    gap:40px
  }
  .faq h2 {
    font-size:36px
  }
  .faq .eyebrow {
    font-size:12px
  }
  summary {
    font-size:16px
  }
  .contact {
    grid-template-columns:1fr;
    gap:40px;
    padding:55px 7vw
  }
  .contact h2 {
    font-size:51px
  }
  .contact-panel {
    max-width:none
  }
  .contact-intro>p:not(.eyebrow) br {
    display:none
  }
  .contact-phone {
    margin-top:5px
  }
  .contact-intro .contact-caption {
    display:inline-block;
    margin-left:25px;
    max-width:160px
  }
  .footer-bottom {
    flex-wrap:wrap
  }
  .footer-bottom>span:last-child {
    display:none
  }
  .footer-top {
    gap:35px
  }
}
@media(max-width:600px) {
  .announcement {
    justify-content:center;
    font-size:12px;
    min-height:30px
  }
  .announcement>a {
    display:none
  }
  .header {
    height:80px;
    padding-inline:6vw
  }
  .header .brand {
    width:184px
  }
  .hero {
    display:flex;
    flex-direction:column;
    padding:17px 6vw 30px;
    gap:32px;
    align-items:stretch
  }
  .hero-copy {
    padding:15px 0 0
  }
  .hero h1 {
    font-size:clamp(42px,10vw,59px);
    line-height:1.12
  }
  .hero .eyebrow {
    font-size:12px;
    letter-spacing:.09em;
    margin-bottom:23px
  }
  .hero-description {
    font-size:16px;
    max-width:340px;
    margin-top:21px;
    line-height:1.75
  }
  .hero-actions {
    gap:14px;
    margin-top:25px
  }
  .hero-actions .button {
    font-size:14px;
    min-height:53px;
    padding-inline:18px
  }
  .hero-actions .text-link {
    gap:15px
  }
          .value-strip {
    padding:23px 6vw
  }
  .value-strip>span {
    font-size:14px
  }
  .value-strip ul {
    font-size:14px;
    gap:9px 12px;
    line-height:1.8
  }
  .section {
    padding:64px 6vw
  }
  .section-top {
    margin-bottom:23px
  }
  .eyebrow {
    font-size:12px
  }
  .section-heading {
    display:block;
    margin-bottom:28px
  }
  h2 {
    font-size:38px
  }
  .section-heading>p {
    margin-top:22px;
    max-width:340px;
    font-size:16px
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:18px
  }
  .service-feature {
    padding:26px
  }
      .service-feature h3 {
    font-size:26px
  }
  .service-feature p {
    font-size:16px
  }
  .service-stack {
    gap:0
  }
  .service-card {
    display:flex;
    padding:28px 0;
    gap:18px
  }
  .service-card h3 {
    font-size:21px
  }
  .service-card p {
    font-size:16px
  }
  .line-icon {
    width:30px;
    height:30px;
    padding:1px;
    margin-bottom:0
  }
  .service-kicker {
    font-size:12px
  }
  .extras {
    grid-template-columns:1fr;
    gap:22px;
    margin-top:30px;
    padding-top:27px
  }
  .extras h3 {
    font-size:28px;
    margin-top:13px
  }
  .extras h3 br {
    display:none
  }
  .extra-links a {
    font-size:16px;
    min-height:56px
  }
  .process-inner {
    grid-template-columns:1fr;
    gap:32px
  }
  .process-intro h2 {
    font-size:48px;
    margin:22px 0
  }
  .process-intro>p:not(.eyebrow) {
    font-size:16px;
    max-width:100%
  }
  .text-link.light {
    margin-top:17px
  }
  .steps {
    padding-top:0
  }
  .steps .step {
    gap:20px;
    padding:25px 0
  }
  .step h3 {
    font-size:23px
  }
  .step p {
    font-size:16px;
    max-width:none
  }
  .benefits {
    display:flex;
    flex-direction:column;
    gap:35px;
    align-items:stretch
  }
  .benefits-photo {
    height:380px
  }
  .benefits-photo img {
    object-position:center 50%;
    border-bottom-right-radius:10px
  }
  .benefits-copy h2 {
    font-size:38px;
    margin:22px 0
  }
  .benefits-copy>p:not(.eyebrow) {
    font-size:16px
  }
  .benefit-item {
    margin-top:23px
  }
  .benefit-item h3 {
    font-size:20px
  }
  .benefit-item p {
    font-size:16px
  }
  .about-inner {
    display:block
  }
  .about h2 {
    font-size:47px;
    margin-top:22px
  }
  .about-story {
    padding-top:30px
  }
  .about-story>p:first-of-type {
    font-size:23px;
    line-height:1.5
  }
  .about-story .story-small {
    font-size:16px
  }
  .about-story strong {
    margin-top:23px
  }
  .faq {
    grid-template-columns:1fr;
    gap:26px
  }
  .faq h2 {
    font-size:38px;
    margin-bottom:19px
  }
  .faq-heading>p:not(.eyebrow) {
    display:inline;
    font-size:16px
  }
  .faq-heading .text-link {
    margin-left:12px;
    font-size:14px;
    gap:10px
  }
  summary {
    font-size:16px;
    padding-block:20px;
    min-height:66px
  }
  .faq-answer {
    font-size:16px;
    padding-right:20px
  }
  .contact {
    margin-inline:4vw;
    padding:43px 7vw;
    border-radius:18px;
    gap:33px
  }
  .contact h2 {
    font-size:40px;
    margin-block:24px
  }
  .contact .eyebrow {
    font-size:12px
  }
  .contact-intro>p:not(.eyebrow) {
    font-size:16px
  }
  .contact-phone {
    font-size:29px;
    gap:30px;
    padding-top:19px
  }
  .contact-intro .contact-caption {
    display:block;
    margin:12px 0 0;
    max-width:none
  }
  .contact-panel {
    padding:25px 21px;
    border-radius:11px
  }
  .contact-panel h3 {
    font-size:22px
  }
  .contact-panel>p {
    font-size:16px
  }
  .form-note {
    font-size:14px
  }
  .footer {
    padding:40px 6vw 20px
  }
  .footer-top {
    gap:18px;
    flex-wrap:wrap;
    padding-bottom:28px
  }
  .footer-top .brand {
    width:180px
  }
  .footer-top p {
    font-size:14px;
    order:3;
    width:100%
  }
  .footer-bottom {
    gap:4px;
    font-size:12px;
    padding-top:16px
  }
  .footer-bottom nav {
    gap:20px;
    flex-wrap:wrap
  }
  .footer-bottom>span {
    width:100%
  }
  .footer-bottom nav a {
    font-size:14px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .motion-ready .reveal {
    opacity:1;
    transform:none
  }
}
.value-strip ul {
  list-style:none;
  margin:0;
  padding:0;
  flex-wrap:wrap;
  row-gap:10px;
  column-gap:24px
}
.value-strip li {
  white-space:nowrap
}
.value-strip>span {
  flex-shrink:0;
  max-width:none;
  font-size:14px;
  color:var(--ink);
  font-weight:600
}
.eyebrow {
  letter-spacing:.08em;
  font-size:12px
}
.hero .green-text {
  display:inline-block
}
.service-kicker {
  font-size:12px;
  letter-spacing:.02em
}
.service-card h3 {
  margin-top:8px
}
.benefit-item p {
  max-width:410px
}
.benefits-photo img {
  object-position:center bottom
}
.header nav {
  font-size:15px
}
.hero-actions .button,.button,.button.small,.text-link {
  font-size:15px
}
.hero-description {
  font-size:18px;
  line-height:1.7
}
.hero .eyebrow {
  font-size:12px;
  letter-spacing:.06em
}
.contact-panel>p {
  max-width:none
}
.contact-caption {
  max-width:340px;
  line-height:1.7
}
.footer-bottom {
  font-size:14px;
  align-items:start;
  flex-wrap:wrap
}
.footer-bottom nav {
  flex-wrap:wrap
}
.footer-bottom nav a {
  font-size:14px
}
.footer-bottom>span {
  padding-top:10px
}
label {
  font-size:14px
}
input,select,textarea {
  font-size:16px
}
.form-note {
  font-size:14px;
  line-height:1.65
}
@media(max-width:1150px) {
  .header nav {
    gap:20px
  }
  .header .brand {
    width:190px
  }
  .hero {
    grid-template-columns:1fr 1fr
  }
  .hero h1 {
    font-size:48px
  }
    .value-strip {
    gap:24px
  }
  .value-strip ul {
    justify-content:start
  }
  .section-heading>p {
    max-width:330px
  }
  .service-card {
    min-width:0
  }
}
@media(max-width:850px) {
  .hero h1 {
    font-size:40px
  }
  .hero-description {
    font-size:17px
  }
          .hero-actions {
    gap:12px
  }
  .value-strip>span {
    margin-bottom:14px
  }
  .value-strip ul {
    column-gap:22px
  }
  .contact-intro .contact-caption {
    display:block;
    margin:12px 0 0;
    max-width:330px
  }
  .faq-heading .text-link {
    display:flex;
    margin-left:0
  }
  .benefits-photo {
    height:620px
  }
  .about h2 {
    font-size:44px
  }
}
@media(max-width:600px) {
  .hero h1 {
    font-size:clamp(33px,8.8vw,49px);
    letter-spacing:-.05em
  }
  .hero .eyebrow {
    font-size:11px;
    letter-spacing:.04em
  }
  .hero-description {
    font-size:17px;
    max-width:none
  }
    .hero-actions .button {
    font-size:15px;
    min-height:54px
  }
  .hero-actions .text-link {
    font-size:15px
  }
          .value-strip ul {
    font-size:14px;
    gap:8px 20px
  }
  .value-strip li {
    white-space:normal
  }
  .section-heading>p {
    max-width:none
  }
  .benefits-photo {
    height:380px
  }
  .benefit-item h3 {
    font-size:20px
  }
  .contact-panel {
    padding:25px 20px
  }
  .contact {
    padding:40px 6vw
  }
  .contact h2 {
    font-size:39px
  }
  .contact-phone {
    font-size:28px;
    gap:20px
  }
  .contact .eyebrow,.faq .eyebrow,.benefits-copy>.eyebrow {
    font-size:12px
  }
  .footer-top p {
    font-size:16px
  }
  .footer-bottom {
    font-size:14px
  }
  .footer-bottom nav {
    gap:14px 20px
  }
  .footer-bottom nav a {
    font-size:14px
  }
}

/* A residential scene fills the hero; the left-hand scrim protects the copy. */
.hero-cinema {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  max-width:none;
  min-height:740px;
  margin:0 24px 26px;
  padding:76px 6vw 155px;
  border-radius:16px;
  overflow:hidden;
  color:var(--white);
  background:#0c211a;
}
.hero-background,.hero-poster,.hero-video,.hero-scrim {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.hero-background { z-index:0; pointer-events:none; }
.hero-poster,.hero-video { object-fit:cover; object-position:center; }
.hero-video { opacity:0; transition:opacity .8s ease; }
.video-ready .hero-video { opacity:1; }
.hero-scrim {
  background:linear-gradient(90deg,rgba(7,26,20,.88) 0%,rgba(7,26,20,.75) 38%,rgba(7,26,20,.5) 65%,rgba(7,26,20,.08) 100%),linear-gradient(0deg,rgba(7,26,20,.7),transparent 36%);
}
.hero-cinema .hero-copy {
  position:relative;
  z-index:1;
  width:100%;
  max-width:900px;
  padding:0;
}
.hero-cinema .eyebrow { color:#eff5e7; font-size:12px; letter-spacing:.1em; margin-bottom:25px; }
.hero-cinema .dot { background:var(--lime); }
.hero-cinema h1 { font-size:clamp(54px,6vw,88px); letter-spacing:-.055em; line-height:1.08; }
.hero-cinema .green-text { color:#b5df7d; }
.hero-cinema .hero-description { max-width:540px; color:#e1e8e0; font-size:18px; line-height:1.75; margin-top:27px; }
.hero-cinema .hero-actions { gap:30px; margin-top:32px; }
.hero-cinema .button { background:var(--lime); border-color:var(--lime); color:#122b22; padding:18px 23px; }
.hero-cinema .button:hover { background:#b6e17e; border-color:#b6e17e; }
.hero-cinema .text-link { color:var(--white); }
.hero-cinema :focus-visible { outline-color:#d3f7a9; }
.hero-foot {
  position:absolute;
  z-index:1;
  bottom:28px;
  left:6vw;
  right:6vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-top:23px;
  border-top:1px solid rgba(255,255,255,.27);
}
.hero-origin,.hero-schedule { color:#dfe7dc; font-size:14px; line-height:1.7; }
.hero-origin strong { font-weight:500; color:var(--white); }
.hero-schedule { margin-left:auto; margin-right:40px; }
.hero-schedule span,.hero-schedule strong { display:block; }
.hero-schedule strong { font-weight:500; color:var(--white); }
.video-toggle {
  display:inline-flex;
  align-items:center;
  gap:12px;
  border:0;
  padding:0;
  background:transparent;
  color:var(--white);
  font-size:14px;
  min-height:46px;
}
.video-toggle[hidden] { display:none; }
.video-toggle-icon { display:grid; place-items:center; width:46px; height:46px; border:1px solid rgba(255,255,255,.6); border-radius:50%; transition:background .2s; }
.video-toggle:hover .video-toggle-icon { background:rgba(255,255,255,.12); }
.video-toggle svg { grid-area:1/1; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; }
.video-toggle .video-play { fill:currentColor; stroke:none; }
.video-toggle[data-playing="true"] .video-play,.video-toggle[data-playing="false"] .video-pause { display:none; }
@media(min-width:1700px) {
  .hero-cinema { max-width:1700px; margin-inline:auto; }
}

@media(max-width:1150px) {
  .hero-cinema { min-height:720px; padding-top:66px; }
  .hero-cinema h1 { font-size:70px; }
  .hero-cinema .hero-copy { max-width:760px; }
  .hero-schedule { margin-right:10px; }
}
@media(max-width:850px) {
  .hero-cinema { min-height:730px; margin-inline:18px; padding:65px 6vw 165px; }
  .hero-cinema h1 { font-size:60px; }
  .hero-cinema .hero-description { max-width:490px; }
  .hero-scrim { background:linear-gradient(90deg,rgba(7,26,20,.86),rgba(7,26,20,.63) 70%,rgba(7,26,20,.3)),linear-gradient(0deg,rgba(7,26,20,.6),transparent 40%); }
  .hero-schedule { display:none; }
}
@media(max-width:600px) {
  .hero-cinema { display:flex; flex-direction:column; justify-content:center; min-height:720px; margin:0 12px 24px; padding:52px 24px 163px; border-radius:12px; gap:0; }
  .hero-cinema .eyebrow { font-size:11px; letter-spacing:.055em; line-height:1.6; margin-bottom:23px; }
  .hero-cinema h1 { font-size:clamp(34px,9.3vw,52px); line-height:1.13; }
  .hero-cinema .hero-description { margin-top:23px; font-size:17px; line-height:1.7; }
  .hero-cinema .hero-actions { gap:14px 25px; margin-top:27px; }
  .hero-cinema .button { padding:17px 19px; font-size:15px; }
  .hero-cinema .text-link { font-size:15px; }
  .hero-poster,.hero-video { object-position:58% center; }
  .hero-scrim { background:linear-gradient(90deg,rgba(7,26,20,.82),rgba(7,26,20,.64)),linear-gradient(0deg,rgba(7,26,20,.55),transparent 50%); }
  .hero-foot { left:24px; right:24px; bottom:25px; gap:12px; align-items:center; padding-top:20px; }
  .hero-origin { font-size:12px; max-width:210px; }
  .video-toggle { gap:0; }
  .video-toggle-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .video-toggle-icon { width:44px; height:44px; }
}

/* Client-approved local identity, resident guidelines and property benefits. */
.hero-veteran-badge { position:absolute; top:24px; right:24px; z-index:2; width:66px; height:78px; object-fit:contain; }
.hero-cinema { min-height:770px; padding-bottom:180px; }
.hero-foot { padding-top:18px; }
.resident-guide { position:relative; isolation:isolate; overflow:hidden; width:calc(100% - 12vw); max-width:1260px; margin:64px auto 0; padding:70px 5vw; display:grid; grid-template-columns:1fr 1.05fr; gap:70px; background:var(--navy); color:var(--white); border-radius:16px; }
.guide-intro .eyebrow { color:var(--lime); }
.guide-intro h2 { font-size:clamp(36px,3.6vw,51px); margin:22px 0 24px; }
.guide-intro>p:not(.eyebrow) { color:#e1e8eb; font-size:16px; margin-top:17px; line-height:1.8; }
.guide-intro .text-link { color:var(--white); margin-top:18px; }
.guide-rules h3 { font-size:23px; margin:9px 0 16px; }
.guide-rules ul { padding:0; margin:0; list-style:none; }
.guide-rules li { position:relative; min-height:64px; padding:18px 0 18px 42px; border-bottom:1px solid #ffffff28; font-size:16px; line-height:1.6; }
.guide-rules li:before { content:'✓'; position:absolute; left:0; top:18px; width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:var(--lime); color:var(--ink); font-size:17px; font-weight:700; }
.benefits { align-items:stretch; }
.benefits-photo { height:100%; min-height:720px; }
.benefits-copy .benefit-item h3 { font-size:21px; }
.benefits-copy .benefit-item p { max-width:none; }
.about-location { font-size:16px; color:#526249; margin-top:27px; }
.why-us { display:grid; grid-template-columns:1fr .95fr; gap:90px; align-items:stretch; }
.why-copy h2 { margin:24px 0; }
.why-copy>p:not(.eyebrow) { font-size:17px; color:var(--muted); max-width:480px; line-height:1.8; }
.why-points { margin-top:27px; }
.why-points>div { border-top:1px solid var(--line); padding:19px 0; }
.why-points h3 { font-size:20px; margin-bottom:9px; }
.why-points p { font-size:16px; color:var(--muted); line-height:1.75; }
.why-copy>.text-link { margin-top:12px; }
.why-photo { min-height:580px; position:relative; border-radius:10px; overflow:hidden; }
.why-photo img { position:absolute; width:100%; height:100%; object-fit:cover; }
.why-photo>p { position:absolute; bottom:20px; left:20px; right:20px; background:var(--paper); color:var(--ink); border-radius:5px; font-size:15px; padding:15px 18px; }
@media(max-width:1024px) {
  .resident-guide { gap:35px; padding:55px 4vw; }
  .why-us { gap:45px; }
  .hero-schedule { margin-right:0; }
}
@media(max-width:850px) {
  .resident-guide { grid-template-columns:1fr; gap:30px; }
  .guide-intro>p:not(.eyebrow) { max-width:580px; }
  .benefits { gap:35px; }
  .benefits-photo { min-height:850px; }
  .why-us { grid-template-columns:1fr 1fr; gap:35px; }
  .why-copy h2 { font-size:39px; }
}
@media(max-width:600px) {
  .hero-cinema { min-height:760px; padding-top:106px; padding-bottom:180px; }
  .hero-veteran-badge { top:16px; right:16px; width:54px; height:64px; }
  .hero-origin { font-size:12px; line-height:1.65; max-width:180px; }
  .hero-foot { left:22px; right:22px; gap:10px; }
  .resident-guide { width:calc(100% - 24px); padding:40px 25px; border-radius:12px; }
  .guide-intro h2 { font-size:36px; }
  .guide-rules h3 { font-size:22px; }
  .guide-rules li { font-size:16px; padding-left:38px; }
  .benefits-photo { height:380px; min-height:0; }
  .benefits-copy .benefit-item h3 { font-size:20px; }
  .why-us { display:flex; flex-direction:column; gap:35px; }
  .why-photo { order:-1; min-height:0; height:330px; }
  .why-copy h2 { font-size:38px; }
  .why-photo>p { font-size:14px; left:15px; right:15px; bottom:15px; padding:13px; }
  }

/* Reference-based service and resident photography. */
.service-collection-photo {
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  object-fit:cover;
  margin:22px 0 24px;
  border-radius:10px;
}
.benefits .benefits-photo {
  height:auto;
  min-height:0;
  aspect-ratio:4 / 5;
  align-self:start;
}
.benefits .benefits-photo img {
  object-fit:contain;
  object-position:center;
}
