@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
:root {
  --ink:#20343a;
  --deep:#172d33;
  --green:#3f7c72;
  --mint:#e4eeea;
  --blue:#487c89;
  --cream:#f7f5f0;
  --white:#fff;
  --muted:#687579;
  --line:#e1e5e2;
  --sans:'DM Sans',sans-serif;
  --display:'Manrope',sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:85px
}
body {
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6
}
h1,h2,h3 {
  font-family:var(--display);
  line-height:1.13;
  letter-spacing:-.04em
}
h1 {
  font-size:clamp(3.2rem,7.6vw,6.8rem);
  margin:15px 0 22px;
  max-width:820px
}
.hero h1 {
  font-size:clamp(2.7rem,6vw,5.3rem);
  line-height:1.08
}
h1 em {
  color:#d1b478;
  font-style:normal
}
h2 {
  font-size:clamp(2.35rem,4.2vw,4.1rem);
  margin:12px 0 18px
}
h3 {
  font-size:1.25rem
}
p {
  margin:0 0 18px
}
.site-header {
  height:84px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5.2%;
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid #e8ece9
}
.brand {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:var(--ink);
  gap:0;
  line-height:1
}
.brand img {
  width:133px;
  height:54px;
  object-fit:contain
}
.brand span {
  font-size:8px;
  letter-spacing:.27em;
  font-weight:700;
  align-self:center;
  margin:2px 0 0;
  padding-left:.27em
}
nav {
  display:flex;
  align-items:center;
  gap:clamp(10px,1.5vw,23px)
}
nav a,.lang {
  font:600 12px var(--sans);
  color:var(--ink);
  text-decoration:none;
  background:none;
  border:0;
  cursor:pointer;
  white-space:nowrap
}
nav a:hover,.text-link:hover {
  color:var(--green)
}
.lang {
  border:1px solid var(--line);
  padding:8px 12px;
  border-radius:3px
}
.menu-toggle {
  display:none
}
.hero {
  min-height:640px;
  height:min(790px,calc(100vh - 84px));
  position:relative;
  display:flex;
  align-items:center;
  color:#fff;
  overflow:hidden;
  background:#172d33
}
.hero-image {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(23,45,51,.94),rgba(23,45,51,.72) 45%,rgba(23,45,51,.14)),url('../img/photo-1600607687939-ce8a6c25118c.jpg') center 56%/cover;
  transition:background-image .4s
}
.hero-copy {
  position:relative;
  z-index:1;
  margin-left:10%;
  max-width:720px;
  padding:60px 25px 70px 0
}
.eyebrow {
  font-size:10px;
  letter-spacing:.19em;
  font-weight:700;
  color:#5b9488
}
.hero .eyebrow {
  color:#cbb984
}
.hero-copy>p:not(.eyebrow) {
  font-size:17px;
  color:#e6ebe7;
  max-width:590px
}
.actions {
  display:flex;
  align-items:center;
  gap:26px;
  margin-top:30px
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  background:#3f7c72;
  color:white;
  border:0;
  border-radius:3px;
  padding:14px 22px;
  text-decoration:none;
  font:700 13px var(--sans);
  cursor:pointer;
  transition:background .2s,transform .2s
}
.button:hover {
  background:#32665e;
  transform:translateY(-1px)
}
.text-link {
  font-weight:700;
  font-size:13px;
  color:var(--ink);
  text-decoration:none
}
.hero .text-link {
  color:white
}
.slider-dots {
  display:flex;
  gap:9px;
  margin-top:55px
}
.slider-dots button {
  border:0;
  width:20px;
  height:3px;
  background:#ffffff75;
  padding:0;
  cursor:pointer
}
.slider-dots button.active {
  background:#c4aa72;
  width:38px
}
.hero-caption {
  position:absolute;
  bottom:30px;
  left:5.2%;
  right:5.2%;
  display:flex;
  justify-content:space-between;
  font-size:10px;
  letter-spacing:.13em;
  color:#d4ded8
}
.trust {
  height:76px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:35px;
  background:#f7f5f0;
  color:#48615b;
  font-size:10px;
  letter-spacing:.14em;
  font-weight:700
}
.trust i {
  height:4px;
  width:4px;
  background:#3f7c72;
  border-radius:50%
}
.section {
  padding:108px 9%
}
.intro {
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:12%;
  align-items:center
}
.intro h2 {
  max-width:550px
}
.intro>p {
  color:var(--muted);
  max-width:520px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:70px;
  margin-bottom:44px
}
.section-heading>div {
  max-width:540px
}
.section-heading>p {
  max-width:480px;
  color:var(--muted);
  margin-bottom:6px
}
.service-section {
  background:var(--cream)
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}
.service-card {
  background:white;
  min-width:0
}
.card-img {
  height:215px;
  background-size:cover;
  background-position:center
}
.img-ecc {
  background-image:url('../img/image3_orig.jpg')
}
.img-qii {
  background-image:url('../img/photo-1768321916128-c242ca443253.jpg')
}
.img-envelope {
  background-image:url('../img/Blower-Door-1.jpg')
}
.img-duct {
  background-image:url('../img/photo-1558358235-a0a93f68a52c.jpg')
}
.img-fan {
  background-image:url('../img/photo-1663082353116-73bdf70050be.jpg')
}
.img-hvac {
  background-image:url('../img/1e2917ed1bb58c94c1398cb7d0b71651.webp')
}
.img-commercial {
  background-image:url('../img/photo-1486406146926-c627a92ad1ab.jpg')
}
.card-body {
  padding:24px 25px 28px
}
.card-body>span {
  font-size:10px;
  color:#3f7c72;
  letter-spacing:.15em
}
.card-body h3 {
  min-height:47px;
  margin:10px 0
}
.card-body p {
  color:var(--muted);
  font-size:13px;
  min-height:83px
}
.card-body a {
  font-size:12px;
  font-weight:700;
  color:var(--ink);
  text-decoration:none
}
.split-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:590px
}
.split-image {
  background-size:cover;
  background-position:center
}
.title-img {
  background-image:url('../img/photo-1484154218962-a197022b5858.jpg')
}
.split-copy {
  padding:clamp(55px,8vw,125px);
  align-self:center
}
.split-copy>p:not(.eyebrow) {
  color:var(--muted)
}
.split-copy ul {
  padding-left:19px;
  color:var(--ink);
  font-size:13px;
  margin:25px 0 32px
}
.split-copy li {
  margin:11px 0
}
.consult-band {
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:8%;
  align-items:center;
  background:#edf3f0
}
.consult-band>div:first-child {
  padding:15px 0
}
.consult-band h2 {
  max-width:610px
}
.consult-band p:not(.eyebrow) {
  max-width:580px;
  color:var(--muted)
}
.consult-image {
  height:430px;
  background:url('../img/photo-1600566753086-00f18fb6b3ea.jpg') center/cover
}
.areas-section {
  background:#f8f7f3
}
.map-layout {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  background:white
}
.map-wrap {
  background:#edf3f0;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:650px;
  padding:18px;
  overflow-x:auto
}
.map-wrap svg {
  width:100%;
  max-width:540px;
  height:auto;
  flex:none
}
.state {
  fill:#fff;
  stroke:#bfd2c6;
  stroke-width:2
}
.county path {
  fill:#c9d9c9;
  stroke:#fff;
  stroke-width:3;
  cursor:pointer;
  pointer-events:all;
  transition:.2s
}
.county:hover path,.county.active path {
  fill:#5b9488
}
.county text {
  font-size:8px;
  fill:#172d33;
  pointer-events:none;
  paint-order:stroke;
  stroke:#fff;
  stroke-width:3px;
  stroke-linejoin:round
}
.county.active text {
  fill:#20343a;
  font-weight:800;
  stroke:#fff;
  stroke-width:3px
}
.map-note {
  font-size:8px;
  letter-spacing:1.5px;
  fill:#6c887d
}
.county-panel {
  padding:70px 10%;
  align-self:center
}
.county-panel h3 {
  font-size:1.8rem;
  margin:8px 0
}
.county-panel>p:not(.eyebrow) {
  color:var(--muted);
  font-size:14px
}
.city-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:20px 0
}
.city-list span,.county-chip {
  font-size:11px;
  padding:7px 10px;
  background:#eef5f0;
  color:#32665e;
  border-radius:20px
}
.small-note {
  font-size:11px;
  color:#71817b
}
.county-chips {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:20px
}
.county-chip {
  border:0;
  cursor:pointer;
  font-family:var(--sans)
}
.county-chip:hover {
  background:var(--mint)
}
.faq-list {
  max-width:920px;
  border-top:1px solid var(--line)
}
.faq-item {
  border-bottom:1px solid var(--line)
}
.faq-q {
  width:100%;
  padding:22px 4px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  text-align:left;
  background:white;
  border:0;
  color:var(--ink);
  font:700 15px var(--sans);
  cursor:pointer
}
.faq-q span:last-child {
  font-size:21px;
  color:var(--green)
}
.faq-a {
  display:none;
  color:var(--muted);
  font-size:14px;
  padding:0 35px 22px 4px;
  max-width:800px
}
.faq-item.open .faq-a {
  display:block
}
.portal-section {
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:10%;
  align-items:center;
  background:#172d33;
  color:white;
  padding:100px 12%
}
.portal-copy h2 {
  color:white
}
.portal-copy>p:not(.eyebrow) {
  color:#cedbd5;
  max-width:520px
}
.form-card {
  background:white;
  color:var(--ink);
  padding:35px;
  display:grid;
  gap:18px
}
label {
  display:grid;
  gap:7px;
  font-weight:700;
  font-size:12px
}
input,select,textarea {
  width:100%;
  border:1px solid #d5ded9;
  border-radius:2px;
  padding:12px;
  font:14px var(--sans);
  color:var(--ink);
  background:#fff
}
input:focus,select:focus,textarea:focus {
  outline:2px solid #78a99b;
  outline-offset:1px
}
.form-message {
  font-size:12px;
  color:#32665e;
  margin:0
}
.billing-section {
  background:#f7f5f0
}
.invoice-form {
  display:grid;
  grid-template-columns:repeat(4,1fr) auto;
  align-items:end;
  gap:14px
}
.invoice-form .button {
  height:43px;
  white-space:nowrap
}
.invoice-result {
  margin-top:22px
}
.invoice-result:not(:empty) {
  background:white;
  padding:20px;
  border-left:3px solid var(--green)
}
.about-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:500px
}
.about-image {
  background:url('../img/photo-1600607687939-ce8a6c25118c.jpg') center/cover
}
.about-copy {
  padding:clamp(45px,8vw,110px);
  align-self:center
}
.about-copy>p:not(.eyebrow) {
  color:var(--muted);
  max-width:570px
}
.contact-section {
  display:grid;
  grid-template-columns:.8fr 1fr;
  gap:12%;
  background:#eef1ed
}
.contact-copy>p:not(.eyebrow) {
  color:var(--muted);
  max-width:420px
}
.contact-copy>a {
  font-weight:700;
  color:var(--ink)
}
.contact-copy>a+p {
  font-size:12px;
  margin-top:24px;
  color:var(--muted)
}
.contact-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.contact-form label:nth-of-type(3),.contact-form label:nth-of-type(4),.contact-form button,.contact-form .form-message {
  grid-column:1/-1
}
.honeypot {
  position:absolute;
  left:-9999px
}
footer {
  min-height:100px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 6%;
  gap:18px;
  font-size:11px;
  color:#61746d
}
footer a {
  color:var(--ink);
  text-decoration:none
}
.footer-brand img {
  width:105px;
  height:43px
}
footer .brand span {
  font-size:7px;
  margin:2px 0 0
}
@media(max-width:1050px) {
  .site-header {
    padding:0 4%
  }
  nav {
    gap:10px
  }
  nav a {
    font-size:10px
  }
  .brand img {
    width:105px;
    height:43px
  }
  .brand span {
    display:block;
    font-size:7px
  }
  .section {
    padding:80px 7%
  }
  .invoice-form {
    grid-template-columns:repeat(2,1fr)
  }
  .invoice-form .button {
    grid-column:1/-1
  }
  .service-grid {
    grid-template-columns:repeat(2,1fr)
  }
}
@media(max-width:760px) {
  .site-header {
    height:72px
  }
  .menu-toggle {
    display:block;
    border:0;
    background:none;
    color:var(--ink);
    font-size:25px
  }
  nav {
    display:none;
    position:absolute;
    top:72px;
    left:0;
    right:0;
    background:#fff;
    padding:18px 6% 24px;
    box-shadow:0 8px 15px #172d3317;
    grid-template-columns:1fr 1fr;
    gap:0
  }
  nav.open {
    display:grid
  }
  nav a {
    font-size:13px;
    padding:11px 0;
    border-bottom:1px solid #e8ece9
  }
  .lang {
    margin-top:10px;
    width:max-content
  }
  .hero {
    height:690px;
    min-height:0
  }
  .hero-copy {
    margin-left:7%;
    padding-right:7%;
    padding-top:20px
  }
  .hero-copy>p:not(.eyebrow) {
    font-size:15px
  }
  .hero-caption {
    font-size:8px
  }
  .trust {
    height:auto;
    padding:20px 6%;
    gap:12px;
    flex-wrap:wrap;
    font-size:8px
  }
  .intro,.section-heading,.consult-band,.portal-section,.contact-section {
    grid-template-columns:1fr;
    gap:25px
  }
  .section {
    padding:68px 7%
  }
  .intro {
    gap:10px
  }
  .section-heading {
    align-items:start
  }
  .service-grid {
    grid-template-columns:1fr
  }
  .card-img {
    height:235px
  }
  .card-body p {
    min-height:0
  }
  .split-section,.about-section {
    grid-template-columns:1fr
  }
  .split-image {
    min-height:320px
  }
  .split-copy,.about-copy {
    padding:58px 8%
  }
  .consult-image {
    height:290px
  }
  .map-layout {
    grid-template-columns:1fr
  }
  .map-wrap {
    min-height:560px;
    padding:8px;
    justify-content:flex-start
  }
  .map-wrap svg {
    width:460px;
    min-width:460px;
    max-width:none;
    height:auto
  }
  .county-panel {
    padding:40px 8%
  }
  .portal-section {
    padding:70px 7%
  }
  .billing-section {
    overflow:hidden
  }
  .invoice-form {
    grid-template-columns:1fr
  }
  .invoice-form .button {
    grid-column:auto
  }
  .contact-form {
    grid-template-columns:1fr
  }
  .contact-form label,.contact-form button,.contact-form .form-message {
    grid-column:auto
  }
  footer {
    flex-wrap:wrap;
    padding:24px 7%
  }
  footer>* {
    flex-basis:42%
  }
  .about-image {
    min-height:300px
  }
}
@media(min-width:1500px) {
  .section {
    padding-left:max(9%,calc((100vw - 1250px)/2));
    padding-right:max(9%,calc((100vw - 1250px)/2))
  }
}
.faq-group-title {
  margin:34px 0 12px;
  font-size:1.35rem;
  letter-spacing:-.025em
}
.faq-group:first-child .faq-group-title {
  margin-top:0
}
.site-header nav a {
  position:relative;
  padding:10px 0;
  color:#526762;
  font-size:11px;
  font-weight:700;
  letter-spacing:.045em;
  transition:color .2s ease
}
.site-header nav a::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:4px;
  height:2px;
  background:var(--green);
  border-radius:2px;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease
}
.site-header nav a:hover,.site-header nav a:focus-visible {
  color:var(--deep)
}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after {
  transform:scaleX(1)
}
.site-header .lang {
  border:1px solid #c8dcd4;
  border-radius:999px;
  padding:8px 14px;
  background:#edf3f0;
  color:var(--deep);
  font-weight:700;
  transition:background .2s ease,color .2s ease,transform .2s ease
}
.site-header .lang:hover {
  background:var(--deep);
  border-color:var(--deep);
  color:#fff;
  transform:translateY(-1px)
}
.site-header nav a:focus-visible,.site-header .lang:focus-visible {
  outline:3px solid #91b5a8;
  outline-offset:4px
}
@media(max-width:760px) {
  .site-header nav a {
    padding:12px 10px;
    border-bottom:1px solid #e8ece9;
    border-radius:5px
  }
  .site-header nav a::after {
    display:none
  }
  .site-header nav a:hover,.site-header nav a:focus-visible {
    background:#edf3f0;
    color:var(--deep)
  }
  .site-header .lang {
    margin:10px 0 0 10px
  }
}
.site-header nav {
  gap:clamp(11px,1.25vw,20px)
}
.site-header nav a {
  padding:11px 2px 13px;
  color:#20343a;
  font-size:13px;
  font-weight:700;
  letter-spacing:.015em
}
.site-header nav a::after {
  left:2px;
  right:2px;
  bottom:5px;
  height:2px;
  box-shadow:0 0 8px #3f7c7270
}
.site-header nav a:hover,.site-header nav a:focus-visible {
  color:#32665e
}
.site-header .lang {
  margin-left:3px;
  padding:9px 16px;
  border:1px solid #b9d2c7;
  background:linear-gradient(135deg,#f8faf8,#e5eeea);
  box-shadow:0 3px 10px #20343a12;
  font-size:12px;
  letter-spacing:.025em
}
.site-header .lang:hover {
  background:linear-gradient(135deg,#3f7c72,#32665e);
  box-shadow:0 5px 14px #32665e30;
  transform:translateY(-2px)
}
@media(max-width:1050px) and (min-width:761px) {
  .site-header nav {
    gap:8px
  }
  .site-header nav a {
    font-size:11px;
    letter-spacing:0
  }
  .site-header .lang {
    padding:8px 11px
  }
}
@media(max-width:760px) {
  .site-header nav {
    gap:4px;
    padding:18px 6% 24px
  }
  .site-header nav a {
    font-size:14px;
    padding:12px 11px;
    border:1px solid transparent;
    border-radius:7px
  }
  .site-header nav a:hover,.site-header nav a:focus-visible {
    border-color:#c8dcd4;
    box-shadow:0 3px 10px #20343a0a
  }
  .site-header .lang {
    font-size:12px
  }
}
.faq-section .section-heading {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  text-align:center
}
.faq-section .section-heading>div,.faq-section .section-heading>p {
  max-width:760px
}
.faq-section .section-heading h2 {
  margin-bottom:8px
}
.faq-list {
  width:100%;
  margin:0 auto
}
.faq-group-title {
  text-align:center
}
.faq-q {
  position:relative;
  justify-content:center;
  text-align:center;
  padding:22px 44px;
  font-size:16px
}
.faq-q span:last-child {
  position:absolute;
  right:8px
}
.faq-a {
  margin:0 auto;
  text-align:center;
  padding:0 24px 22px;
  max-width:760px
}
footer {
  justify-content:center;
  flex-wrap:wrap;
  gap:18px 32px;
  text-align:center
}
footer>* {
  flex:0 1 auto
}
footer .brand {
  margin:0 auto
}
@media(max-width:760px) {
  footer {
    justify-content:center;
    gap:18px 26px
  }
  footer>* {
    flex:0 1 auto
  }
}
.faq-list {
  max-width:820px;
  margin:0 auto
}
.faq-group {
  padding:22px 28px;
  margin:0 auto 22px;
  background:#fff;
  border:1px solid #e1e8e4;
  border-radius:8px;
  box-shadow:0 8px 22px #20343a0a
}
.faq-group-title {
  text-align:left;
  margin:0 0 10px;
  padding-bottom:12px;
  border-bottom:1px solid #e1e8e4;
  color:var(--deep)
}
.faq-q {
  justify-content:space-between;
  text-align:left;
  padding:18px 2px;
  font-size:15px
}
.faq-q span:last-child {
  position:static;
  flex:0 0 auto
}
.faq-a {
  max-width:none;
  margin:0;
  text-align:left;
  padding:0 28px 18px 2px;
  line-height:1.75
}
footer {
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:24px 34px;
  padding:28px 6%;
  text-align:center
}
footer>* {
  flex:0 0 auto
}
footer .brand {
  margin:0
}
.footer-brand img {
  width:108px;
  height:44px
}
@media(max-width:760px) {
  .faq-group {
    padding:20px 18px
  }
  .faq-q {
    padding:16px 0;
    gap:12px
  }
  .faq-a {
    padding:0 24px 16px 0
  }
  footer {
    flex-direction:column;
    gap:14px;
    padding:28px 7%
  }
  footer>* {
    flex:0 0 auto
  }
}
.site-header nav a {
  color:#3b5559
}
.site-header nav a:hover,.site-header nav a:focus-visible {
  color:#2f7168
}
.site-header .lang {
  color:#32514f
}
.faq-section .section-heading h2 {
  color:#243b42
}
.faq-section .section-heading>div>.eyebrow {
  color:#527f75
}
.faq-group-title {
  color:#52766e
}
.faq-q {
  color:#2c4147
}
.faq-q:hover,.faq-q:focus-visible {
  color:#32665e
}
.faq-q span:last-child {
  color:#b08b53
}
.faq-a {
  color:#697579
}
.lang-en,.lang-zh {
  display:none
}
html[lang^="en"] .lang-en {
  display:inline
}
html[lang^="zh"] .lang-zh {
  display:inline
}
.form-success,.form-error {
  padding:.85rem 1.25rem;
  border-radius:8px
}
.form-success {
  background:#e8f5e9;
  color:#1e4620;
  border:1px solid #c8e6c9
}
.form-error {
  background:#ffebee;
  color:#b71c1c;
  border:1px solid #ffcdd2
}
.contact-form #form-items {
  display:grid;
  grid-column:1/-1;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.contact-form #form-status {
  grid-column:1/-1
}
@media(max-width:760px) {
  .contact-form #form-items {
    grid-template-columns:1fr
  }
}
.contact-section {
  align-items:center;
  gap:clamp(38px,7vw,100px);
  background:linear-gradient(135deg,#f7f5f0 0%,#eef1ed 100%)
}
.contact-copy {
  max-width:500px
}
.contact-copy .eyebrow {
  margin-bottom:14px
}
.contact-copy h1 {
  max-width:460px;
  margin:12px 0 22px;
  font-size:clamp(2.6rem,4.5vw,4.4rem);
  color:var(--deep)
}
.contact-copy>p:not(.eyebrow) {
  line-height:1.8
}
.contact-copy>a {
  display:inline-block;
  margin:4px 0 14px;
  color:#32665e;
  text-decoration:none;
  font-size:15px
}
.contact-copy>a:hover {
  text-decoration:underline
}
.contact-copy>a+p {
  margin-top:8px
}
.contact-form {
  display:block;
  width:100%;
  max-width:680px;
  margin:0 auto
}
.contact-form #form-items {
  grid-column:auto;
  padding:clamp(24px,4vw,38px);
  gap:20px;
  background:#fff;
  border:1px solid #e2e7e3;
  border-radius:12px;
  box-shadow:0 18px 45px #172d3312
}
.contact-form label {
  gap:8px;
  color:#354d51;
  font-size:13px;
  font-weight:700
}
.contact-form input:not([type=hidden]):not([type=text].honeypot),.contact-form select,.contact-form textarea {
  border:1px solid #d9e1dd;
  border-radius:7px;
  padding:13px 14px;
  background:#fbfcfa;
  color:var(--ink);
  font-size:14px;
  transition:border-color .2s,box-shadow .2s,background .2s
}
.contact-form input:not([type=hidden]):not([type=text].honeypot),.contact-form select {
  min-height:48px
}
.contact-form textarea {
  min-height:132px;
  resize:vertical
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {
  outline:none;
  border-color:#6e9d91;
  box-shadow:0 0 0 4px #3f7c7219;
  background:#fff
}
.contact-form .button {
  grid-column:1/-1;
  width:100%;
  min-height:50px;
  border-radius:7px;
  box-shadow:0 7px 16px #32665e26;
  font-size:14px
}
.contact-form .button:hover {
  box-shadow:0 10px 20px #32665e35;
  transform:translateY(-2px)
}
.contact-form #form-status {
  margin-top:0
}
.contact-form #form-status[style*="display: block"] {
  margin-top:2px
}
.form-success,.form-error {
  border-radius:10px;
  padding:18px 20px;
  line-height:1.6
}
.form-success {
  background:#edf5f0;
  color:#315e4d;
  border-color:#ccded3
}
.form-error {
  background:#fbefed;
  color:#914c45;
  border-color:#ebd0ca
}
@media(max-width:760px) {
  .contact-section {
    gap:30px
  }
  .contact-copy h1 {
    font-size:clamp(2.6rem,10vw,3.6rem)
  }
  .contact-form #form-items {
    grid-template-columns:1fr;
    padding:22px 18px;
    gap:17px
  }
  .contact-form label {
    grid-column:auto
  }
}
.portal-section {
  background:linear-gradient(135deg,#f7f5f0,#eef1ed);
  color:var(--ink);
  padding:clamp(64px,9vw,108px) clamp(7%,12vw,15%);
  gap:clamp(36px,7vw,92px)
}
.portal-copy h1,.billing-section h1 {
  font-size:clamp(2.7rem,4.8vw,4.6rem);
  color:var(--deep);
  margin:12px 0 20px
}
.portal-copy .eyebrow {
  color:#527f75
}
.portal-copy>p:not(.eyebrow) {
  max-width:520px;
  color:#5d6d70;
  line-height:1.8
}
.portal-copy .small-note {
  margin-top:26px;
  padding-left:14px;
  border-left:2px solid #b9d2c7;
  color:#6d7979;
  font-size:13px
}
.form-card {
  width:100%;
  max-width:500px;
  padding:clamp(24px,4vw,38px);
  gap:20px;
  border:1px solid #e2e7e3;
  border-radius:12px;
  box-shadow:0 18px 45px #172d3312
}
.form-card label,.invoice-form label {
  gap:8px;
  color:#354d51;
  font-size:13px;
  font-weight:700
}
.form-card input,.invoice-form input,.invoice-form select {
  min-height:49px;
  border:1px solid #d9e1dd;
  border-radius:7px;
  padding:13px 14px;
  background:#fbfcfa;
  transition:border-color .2s,box-shadow .2s,background .2s
}
.form-card input:focus,.invoice-form input:focus,.invoice-form select:focus {
  outline:none;
  border-color:#6e9d91;
  box-shadow:0 0 0 4px #3f7c7219;
  background:#fff
}
.form-card .button,.invoice-form .button {
  min-height:50px;
  border-radius:7px;
  box-shadow:0 7px 16px #32665e26;
  font-size:14px
}
.form-card .button {
  width:100%
}
.form-card .form-message {
  min-height:18px;
  margin:0;
  text-align:center;
  color:#61746d
}
.billing-section {
  background:linear-gradient(135deg,#f7f5f0 0%,#eef1ed 100%);
  padding-top:clamp(64px,8vw,100px);
  padding-bottom:clamp(64px,8vw,100px)
}
.billing-section>.section-heading,.billing-section>.invoice-form,.billing-section>.invoice-result,.billing-section>.small-note {
  width:100%;
  max-width:1040px;
  margin-left:auto;
  margin-right:auto
}
.billing-section>.section-heading {
  margin-bottom:34px;
  align-items:end;
  gap:48px
}
.billing-section>.section-heading>div {
  max-width:520px
}
.billing-section>.section-heading>p {
  max-width:470px;
  line-height:1.8
}
.invoice-form {
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:end;
  gap:20px;
  padding:clamp(24px,4vw,38px);
  background:#fff;
  border:1px solid #e2e7e3;
  border-radius:12px;
  box-shadow:0 18px 45px #172d3312
}
.invoice-form .button {
  grid-column:1/-1;
  width:100%;
  white-space:normal;
  box-shadow:0 7px 16px #32665e26
}
.invoice-form .button:hover,.form-card .button:hover {
  box-shadow:0 10px 20px #32665e35;
  transform:translateY(-2px)
}
.invoice-result {
  min-height:0
}
.invoice-result:not(:empty) {
  border:1px solid #dce5df;
  border-left:3px solid var(--green);
  border-radius:8px;
  box-shadow:0 8px 22px #172d330a;
  color:var(--ink)
}
.billing-section>.small-note {
  margin-top:22px;
  color:#687579;
  line-height:1.7
}
@media(max-width:760px) {
  .portal-section {
    grid-template-columns:1fr;
    padding:64px 7%;
    gap:28px
  }
  .portal-copy h1,.billing-section h1 {
    font-size:clamp(2.55rem,9vw,3.5rem)
  }
  .form-card {
    max-width:none;
    padding:23px 19px
  }
  .billing-section>.section-heading {
    display:grid;
    grid-template-columns:1fr;
    gap:14px
  }
  .invoice-form {
    grid-template-columns:1fr;
    padding:22px 18px;
    gap:17px
  }
  .invoice-form .button {
    grid-column:1/-1
  }
}
/* Meadow inspired visual refresh: preserve all page content and behavior. */
:root {
  --ink:#283b32;
  --deep:#24382f;
  --green:#b97850;
  --mint:#e8eee5;
  --blue:#738675;
  --cream:#f7f4ed;
  --white:#fffdf8;
  --muted:#68736a;
  --line:#e6e1d7;
  --sans:'DM Sans',Arial,Helvetica,sans-serif;
  --display:'Playfair Display',Georgia,'Times New Roman',serif
}
body {
  background:#fbf8f1;
  color:var(--ink)
}
h1,h2,h3 {
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.025em
}
h1 em {
  color:#a96543
}
.site-header {
  height:78px;
  margin:14px auto 0;
  width:min(94%,1440px);
  padding:0 3.2%;
  background:rgba(255,253,248,.94);
  border:1px solid #e8e3d9;
  border-radius:18px;
  box-shadow:0 8px 30px #3443380b;
  backdrop-filter:blur(12px)
}
.brand {
  color:#344438
}
.brand img {
  width:118px;
  height:47px
}
.brand span {
  font-size:7px;
  color:#778076
}
.site-header nav a {
  color:#4d5b50;
  font-size:12px
}
.site-header nav a::after {
  background:#b97850
}
.site-header nav a:hover,.site-header nav a:focus-visible {
  color:#a95f3f
}
.site-header .lang {
  background:#f6ece3;
  color:#a76140;
  border-color:#ead4c2;
  box-shadow:none
}
.site-header .lang:hover {
  background:#b97850;
  border-color:#b97850;
  color:white
}
.menu-toggle {
  color:#344438
}
.hero {
  height:min(760px,calc(100vh - 96px));
  min-height:590px;
  margin:12px auto 0;
  width:min(100%,1600px);
  align-items:flex-end;
  color:var(--ink);
  background:#e7d9c1
}
.hero-image {
  background-image:linear-gradient(90deg,rgba(11,47,42,.92),rgba(11,47,42,.70) 45%,rgba(11,47,42,.13)),url('../img/photo-1600607687939-ce8a6c25118c.jpg');
  background-position:center 54%;
  filter:saturate(.8)
}
.hero-copy {
  z-index:1;
  margin:0 auto 54px;
  padding:34px 26px 26px;
  max-width:850px;
  text-align:center
}
.hero .eyebrow {
  color:#9c694b
}
.hero h1 {
  font-size:clamp(3rem,7vw,6rem);
  line-height:1.02;
  margin:10px 0 18px;
  color:#26382d;
  font-weight:400
}
.hero-copy>p:not(.eyebrow) {
  max-width:620px;
  margin-left:auto;
  margin-right:auto;
  color:#4f5c51;
  font-size:17px
}
.actions {
  justify-content:center;
  gap:14px;
  margin-top:25px
}
.button {
  background:#b97850;
  border-radius:999px;
  padding:15px 25px;
  box-shadow:0 8px 20px #9e623629
}
.button:hover {
  background:#a96543
}
.text-link {
  color:#344438
}
.hero .text-link {
  color:#344438
}
.slider-dots {
  justify-content:center;
  margin-top:35px
}
.slider-dots button {
  border-radius:99px;
  background:#8d806d55
}
.slider-dots button.active {
  background:#b97850
}
.hero-caption {
  bottom:18px;
  color:#697468;
  letter-spacing:.08em
}
.trust {
  background:#f3eee4;
  color:#506052;
  letter-spacing:.12em
}
.trust i {
  background:#b97850
}
.section {
  padding-top:clamp(76px,9vw,118px);
  padding-bottom:clamp(76px,9vw,118px)
}
.eyebrow {
  color:#ad7452;
  letter-spacing:.17em
}
.intro h2,.section-heading h2,.split-copy h2,.consult-band h2,.county-panel h3,.about-copy h2,.contact-copy h1 {
  color:#293b30
}
.intro>p,.section-heading>p,.split-copy>p:not(.eyebrow),.consult-band p:not(.eyebrow),.about-copy>p:not(.eyebrow),.contact-copy>p:not(.eyebrow) {
  color:#68736a;
  line-height:1.8
}
.service-section,.areas-section {
  background:#f5f1e8
}
.service-card {
  overflow:hidden;
  background:#fffdf8;
  border:1px solid #e9e3d8;
  border-radius:17px;
  box-shadow:0 10px 28px #3443380a;
  transition:transform .25s,box-shadow .25s
}
.service-card:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 36px #34433817
}
.card-img {
  height:225px
}
.card-body {
  padding:25px 26px 29px
}
.card-body>span {
  color:#b97850
}
.card-body a {
  color:#9f6547
}
.card-body a:hover {
  color:#704531
}
.split-section {
  background:#fffdf8
}
.split-image {
  min-height:590px
}
.split-copy {
  padding:clamp(55px,8vw,125px)
}
.split-copy ul {
  color:#48574a
}
.split-copy li::marker {
  color:#b97850
}
.consult-band {
  background:#eaf0e7
}
.consult-image {
  border-radius:20px;
  box-shadow:0 18px 38px #3443381c
}
.map-layout {
  overflow:hidden;
  background:#fffdf8;
  border:1px solid #e8e1d5;
  border-radius:20px;
  box-shadow:0 12px 30px #3443380a
}
.map-wrap {
  background:#eaf0e7
}
.state {
  fill:#fffdf8;
  stroke:#cbd7c9
}
.county path {
  fill:#cfdbc9
}
.county:hover path,.county.active path {
  fill:#b97850
}
.county text {
  fill:#334437;
  stroke:#fffdf8
}
.county.active text {
  fill:#26382d
}
.map-note {
  fill:#69796a
}
.city-list span,.county-chip {
  background:#edf1e8;
  color:#48634e
}
.county-chip:hover {
  background:#e1e9dd
}
.faq-group {
  background:#fffdf8;
  border-color:#e8e1d5;
  border-radius:16px;
  box-shadow:0 8px 25px #34433809
}
.faq-list {
  border-color:#e8e1d5
}
.faq-item,.faq-group-title {
  border-color:#e8e1d5
}
.faq-group-title {
  color:#536b54
}
.faq-q {
  background:transparent;
  color:#344438
}
.faq-q:hover,.faq-q:focus-visible {
  color:#a96543
}
.faq-q span:last-child {
  color:#b97850
}
.faq-a {
  color:#68736a
}
.portal-section,.billing-section,.contact-section {
  background:linear-gradient(135deg,#f6f1e7 0%,#eaf0e7 100%);
  color:var(--ink)
}
.portal-copy h1,.billing-section h1,.contact-copy h1 {
  color:#293b30
}
.portal-copy>p:not(.eyebrow) {
  color:#68736a
}
.portal-copy .small-note {
  border-color:#c8916b;
  color:#68736a
}
.form-card,.contact-form #form-items,.invoice-form {
  background:#fffdf8;
  border-color:#e8e1d5;
  border-radius:18px;
  box-shadow:0 16px 40px #34433810
}
input,select,textarea,.form-card input,.invoice-form input,.invoice-form select,.contact-form input:not([type=hidden]):not([type=text].honeypot),.contact-form select,.contact-form textarea {
  border-color:#deded2;
  border-radius:10px;
  background:#fbfaf5;
  color:#344438
}
input:focus,select:focus,textarea:focus,.form-card input:focus,.invoice-form input:focus,.invoice-form select:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {
  border-color:#b97850;
  box-shadow:0 0 0 4px #b978501a
}
.contact-copy>a {
  color:#a96543
}
.contact-form .button,.form-card .button,.invoice-form .button {
  border-radius:999px;
  background:#b97850
}
.form-success {
  background:#edf2e8;
  color:#416147;
  border-color:#d2dfce
}
.form-error {
  background:#fbefea;
  color:#914c45;
  border-color:#ebd0ca
}
footer {
  background:#f3eee4;
  color:#697468
}
footer a {
  color:#344438
}
@media(max-width:760px) {
  .site-header {
    height:68px;
    margin-top:8px;
    width:calc(100% - 22px);
    padding:0 5%
  }
  .site-header nav {
    top:70px;
    background:#fffdf8;
    border:1px solid #e8e1d5;
    border-radius:0 0 16px 16px;
    box-shadow:0 12px 25px #34433813
  }
  .hero {
    height:670px;
    min-height:0;
    margin-top:8px
  }
  .hero-copy {
    margin:0 auto 54px;
    padding:28px 7% 22px
  }
  .hero h1 {
    font-size:clamp(2.75rem,12vw,4.5rem)
  }
  .hero-copy>p:not(.eyebrow) {
    font-size:15px
  }
  .hero-caption {
    bottom:14px
  }
  .trust {
    background:#f3eee4
  }
  .service-card:hover {
    transform:none
  }
  .split-image {
    min-height:320px
  }
  .consult-image {
    height:290px
  }
  .map-layout {
    border-radius:14px
  }
  .map-wrap {
    background:#eaf0e7
  }
}
/* Keep rotating hero copy legible over its darkened photo slides. */
.hero-copy h1,.hero-copy h1 em {
  color:#fff;
  text-shadow:0 2px 18px rgba(23,36,30,.38)
}
.hero-copy h1 em {
  color:#f2d4a9
}
.hero-copy>p:not(.eyebrow) {
  color:#fff;
  text-shadow:0 1px 12px rgba(23,36,30,.5)
}
.hero .eyebrow {
  color:#f4dcb7;
  text-shadow:0 1px 10px rgba(23,36,30,.55)
}
.hero .text-link {
  color:#fff;
  text-shadow:0 1px 10px rgba(23,36,30,.55)
}
.hero-caption {
  color:#fff;
  text-shadow:0 1px 10px rgba(23,36,30,.6)
}
/* CSS language toggle: both translations remain in the document for indexing. */
.language-toggle {
  position:absolute;
  opacity:0;
  pointer-events:none
}
.lang-zh {
  display:none
}
body:has(#language-toggle:checked) .lang-en {
  display:none
}
body:has(#language-toggle:checked) .lang-zh {
  display:initial
}
body:has(#language-toggle:checked) .lang {
  font-size:16
}
body:has(#language-toggle:checked) .lang .lang-en,body:not(:has(#language-toggle:checked)) .lang .lang-zh {
  display:none
}
body:has(#language-toggle:checked) .lang .lang-zh,body:not(:has(#language-toggle:checked)) .lang .lang-en {
  display:inline
}
.privacy-banner{position:fixed;z-index:1000;left:50%;bottom:12px;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 24px);display:flex;align-items:center;gap:14px;padding:8px 10px;background:#123431;color:#fff;border-radius:7px;box-shadow:0 3px 18px rgba(0,0,0,.24);font-size:13px}
.privacy-banner-copy{display:flex;align-items:center;gap:8px}.privacy-banner-copy p{margin:0;line-height:1.35}.privacy-banner a{color:#f4dcb7;text-decoration:underline}.privacy-banner-actions{display:flex;gap:6px}.privacy-button{border:1px solid #fff;border-radius:4px;padding:6px 9px;font:inherit;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}.privacy-reject{background:transparent;color:#fff}.privacy-accept{background:#f4dcb7;color:#123431;border-color:#f4dcb7}.privacy-page{max-width:800px;margin:0 auto;line-height:1.7}.privacy-page h1,.privacy-page h2{color:#123431}.privacy-page h2{margin-top:2em}
@media(max-width:520px){.privacy-banner{width:calc(100vw - 24px);justify-content:space-between;gap:8px;padding:7px 8px}.privacy-banner-copy{display:block}.privacy-banner-copy p{font-size:11px}.privacy-button{padding:6px 7px}}
