:root { --ink:#132c33; --ink-soft:#31515a; --teal:#2f7373; --teal-dark:#21595a; --mint:#b8d7cc; --stone:#f3f1eb; --paper:#fbfaf7; --white:#fff; --line:rgba(19,44,51,.16); --font-body:"Aptos","Segoe UI",Arial,sans-serif; --font-display:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:9rem; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:1rem; line-height:1.65; }
a { color:inherit; text-decoration:none; } svg { flex:0 0 auto; }
.shell { width:min(1180px,calc(100% - 3rem)); margin-inline:auto; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:100; background:var(--ink); color:white; padding:.75rem 1rem; border-radius:.35rem; }
.skip-link:focus { top:1rem; } :focus-visible { outline:3px solid #d8a94f; outline-offset:4px; }

.contact-bar { background:var(--ink); color:#e8f2ef; font-size:.79rem; letter-spacing:.015em; }
.contact-bar__inner { min-height:2.6rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.contact-bar p { margin:0; color:#b8d0cf; } .contact-bar__links { display:flex; gap:1.6rem; }
.contact-bar__links a { display:inline-flex; align-items:center; gap:.45rem; } .contact-bar__links svg { width:.9rem; height:.9rem; } .contact-bar__links a:hover { color:white; }

.site-header { position:sticky; top:0; z-index:30; background:color-mix(in srgb,var(--paper) 93%,transparent); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.site-header__inner { min-height:5.6rem; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; }
.brand { display:inline-flex; align-items:center; gap:.72rem; justify-self:start; line-height:1; }
.brand>span:last-child { display:grid; gap:.2rem; } .brand strong { font-family:var(--font-display); font-size:1.2rem; font-weight:600; letter-spacing:-.02em; } .brand small { font-size:.67rem; text-transform:uppercase; letter-spacing:.17em; color:var(--teal); }
.brand-mark { position:relative; display:block; width:2.35rem; height:2.35rem; }
.brand-mark span { position:absolute; width:1.55rem; height:1.55rem; border:4px solid var(--teal); border-radius:50%; }
.brand-mark span:first-child { left:0; top:.1rem; } .brand-mark span:last-child { right:0; bottom:.1rem; border-color:var(--mint); }
.desktop-nav { display:flex; gap:1.8rem; font-size:.86rem; font-weight:600; }
.desktop-nav a { position:relative; padding-block:.5rem; } .desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:.15rem; height:1px; background:var(--teal); transition:right .25s ease; } .desktop-nav a:hover::after { right:0; }
.header-cta { justify-self:end; }
.mobile-nav { display:none; justify-self:end; position:relative; }
.mobile-nav summary { list-style:none; width:2.75rem; height:2.75rem; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; cursor:pointer; } .mobile-nav summary::-webkit-details-marker { display:none; } .mobile-nav summary svg { width:1.2rem; }
.mobile-nav nav { position:absolute; right:0; top:3.4rem; min-width:14rem; padding:.65rem; display:grid; background:white; border:1px solid var(--line); box-shadow:0 18px 50px rgba(19,44,51,.14); border-radius:.75rem; }
.mobile-nav nav a { padding:.75rem .85rem; border-radius:.4rem; font-weight:600; } .mobile-nav nav a:hover { background:var(--stone); }

.button { display:inline-flex; min-height:3.15rem; align-items:center; justify-content:center; padding:.75rem 1.4rem; border:1px solid var(--ink); background:var(--ink); color:white; border-radius:.25rem; font-size:.88rem; font-weight:700; letter-spacing:.015em; transition:transform .2s ease,background .2s ease,color .2s ease; }
.button:hover { background:var(--teal-dark); border-color:var(--teal-dark); transform:translateY(-2px); } .button--small { min-height:2.6rem; padding:.55rem 1rem; } .button--outline { background:transparent; color:var(--ink); } .button--outline:hover { color:white; }
.text-link { display:inline-flex; align-items:center; gap:.6rem; font-size:.89rem; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:.18rem; } .text-link:hover { color:var(--teal); }
.eyebrow { margin:0 0 1.2rem; color:var(--teal); font-size:.75rem; line-height:1.2; font-weight:800; text-transform:uppercase; letter-spacing:.19em; } .eyebrow--light { color:var(--mint); }
h1,h2,h3,p { text-wrap:pretty; } h1,h2 { font-family:var(--font-display); font-weight:500; letter-spacing:-.035em; line-height:1.08; }
h1 { margin:0; max-width:760px; font-size:clamp(3.05rem,5.2vw,5rem); } h1 em { color:var(--teal); font-weight:inherit; } h2 { margin:0; font-size:clamp(2.35rem,4.4vw,4.2rem); }

.hero { padding:clamp(3.8rem,6vw,5.6rem) 0 2rem; overflow:hidden; }
.hero__grid { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr); align-items:center; gap:clamp(3rem,7vw,7rem); }
.hero__lead { max-width:670px; margin:2rem 0 0; color:var(--ink-soft); font-size:clamp(1.1rem,1.7vw,1.35rem); line-height:1.6; }
.hero__actions { display:flex; align-items:center; gap:1.5rem; margin-top:2rem; }
.hero__visual { position:relative; min-height:500px; }
.hero__image { position:absolute; inset:0 0 5.6rem 3rem; border-radius:10rem 10rem .35rem .35rem; background-color:#cbd7d1; background-image:linear-gradient(180deg,transparent 45%,rgba(17,45,51,.1)),url('/public/residential-home.jpg'); background-size:cover; background-position:center; box-shadow:0 25px 80px rgba(19,44,51,.14); }
.hero__visual::before { content:""; position:absolute; width:11rem; height:11rem; left:0; top:2.5rem; border:1px solid rgba(47,115,115,.4); border-radius:50%; }
.hero__note { position:absolute; left:0; right:3rem; bottom:0; display:grid; grid-template-columns:6rem 1fr; gap:1.2rem; align-items:start; padding:1.7rem 2rem; background:var(--ink); color:white; }
.hero__note-index { color:var(--mint); font-size:.72rem; text-transform:uppercase; letter-spacing:.15em; } .hero__note p { margin:0; font-family:var(--font-display); font-size:1.35rem; line-height:1.35; }
.hero__footnote { display:flex; align-items:center; gap:1.2rem; margin-top:4.5rem; color:#61777c; font-size:.76rem; text-transform:uppercase; letter-spacing:.09em; } .hero__footnote .line { height:1px; flex:1; background:var(--line); }

.section { padding:clamp(5.7rem,10vw,9rem) 0; } .about { background:white; }
.split-intro { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(3rem,10vw,9rem); align-items:start; }
.prose-large { padding-top:2.4rem; } .prose-large p { margin:0 0 1.6rem; color:var(--ink-soft); font-size:clamp(1.12rem,1.8vw,1.42rem); line-height:1.65; }

.supported { background:#edf2f0; color:var(--ink); }
.supported .eyebrow--light { color:var(--teal); }
.section-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(3rem,8vw,7rem); align-items:end; } .section-heading>p { margin:0 0 .35rem; color:var(--ink-soft); font-size:1.05rem; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:4.5rem; }
.service-card { min-width:0; overflow:hidden; background:rgba(255,255,255,.94); border:1px solid rgba(19,44,51,.12); border-radius:.75rem; box-shadow:0 12px 35px rgba(19,44,51,.07); transition:transform .25s ease,box-shadow .25s ease; }
.service-card:hover { transform:translateY(-3px); box-shadow:0 18px 42px rgba(19,44,51,.1); }
.service-card>img { display:block; width:100%; aspect-ratio:8/5; object-fit:cover; background:#dbe4e0; filter:saturate(.82) contrast(.97); }
.service-card__body { padding:1.55rem 1.5rem 1.7rem; }
.service-card__top { display:flex; align-items:center; justify-content:space-between; color:var(--teal); font-size:.75rem; }
.service-card h3 { margin:2.6rem 0 .8rem; font-family:var(--font-display); font-size:1.48rem; line-height:1.2; font-weight:500; } .service-card p { margin:0; color:var(--ink-soft); font-size:.94rem; }
.boundary-note { margin-top:2.5rem; display:grid; grid-template-columns:1fr 3fr; gap:2rem; padding:1.6rem 0; border-block:1px solid var(--line); }
.boundary-note span { color:var(--teal); font-size:.76rem; text-transform:uppercase; letter-spacing:.14em; } .boundary-note p { margin:0; max-width:800px; color:var(--ink-soft); }

.approach { background:var(--stone); } .approach__grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,10vw,9rem); }
.approach__intro { position:sticky; top:10rem; align-self:start; } .approach__intro>p:last-child { max-width:480px; margin-top:1.8rem; color:var(--ink-soft); font-size:1.08rem; }
.principle-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); } .principle-list li { display:grid; grid-template-columns:3.5rem 1fr; gap:1.2rem; padding:1.8rem 0; border-bottom:1px solid var(--line); }
.principle-list>li>span { color:var(--teal); font-size:.75rem; font-weight:800; } .principle-list h3 { margin:0 0 .55rem; font-family:var(--font-display); font-size:1.55rem; font-weight:500; } .principle-list p { margin:0; color:var(--ink-soft); }

.workforce { background:white; } .workforce__card { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(3rem,10vw,8rem); padding-block:clamp(3rem,6vw,5.5rem); border-block:1px solid var(--line); }
.workforce__card>div:last-child>p { max-width:630px; margin:0 0 1.8rem; color:var(--ink-soft); font-size:1.12rem; }
.check-list { display:grid; grid-template-columns:1fr 1fr; gap:.7rem 1.5rem; margin:0 0 2rem; padding:0; list-style:none; } .check-list li { display:flex; gap:.65rem; align-items:center; } .check-list svg { width:1rem; color:var(--teal); }

.partnerships__grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(3rem,11vw,10rem); align-items:start; } .partnerships__copy>p:not(.eyebrow) { color:var(--ink-soft); font-size:1.1rem; margin:1.8rem 0 2rem; }
.partner-list { border-top:1px solid var(--line); } .partner-list>div { display:grid; grid-template-columns:3rem 1fr; align-items:center; gap:1rem; padding:1.35rem 0; border-bottom:1px solid var(--line); }
.partner-list span { color:var(--teal); font-size:.72rem; font-weight:800; } .partner-list p { margin:0; font-family:var(--font-display); font-size:1.25rem; }

.contact { background:var(--teal-dark); color:white; } .contact__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,10vw,9rem); }
.contact__intro>p:last-child { max-width:560px; color:#c8dcda; font-size:1.05rem; } .contact__details { border-top:1px solid rgba(255,255,255,.2); }
.contact-link { display:grid; grid-template-columns:2rem 1fr; gap:1.2rem; align-items:start; padding:1.45rem 0; border-bottom:1px solid rgba(255,255,255,.2); font-family:var(--font-display); font-size:1.25rem; overflow-wrap:anywhere; }
.contact-link:not(.contact-link--address):hover { color:var(--mint); } .contact-link svg { width:1.15rem; color:var(--mint); margin-top:.28rem; }
.contact-link>span:first-child { color:var(--mint); font-family:var(--font-body); font-size:.7rem; font-weight:700; letter-spacing:.08em; margin-top:.25rem; } .contact-link span,.contact-link address { display:grid; font-style:normal; } .contact-link small { margin-bottom:.25rem; color:#aac7c5; font-family:var(--font-body); font-size:.68rem; text-transform:uppercase; letter-spacing:.15em; }

.site-footer { background:#0b2228; color:white; } .site-footer__top { min-height:10rem; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:2rem; }
.brand--footer small { color:var(--mint); } .site-footer__top p { color:#a9c2c1; text-align:center; } .site-footer__top>a:last-child { justify-self:end; font-size:.9rem; }
.site-footer__bottom { min-height:4rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid rgba(255,255,255,.12); color:#90acac; font-size:.75rem; } .site-footer__bottom p { margin:0; }

@media(max-width:980px){ .site-header__inner{grid-template-columns:1fr auto auto}.desktop-nav{display:none}.mobile-nav{display:block}.hero__grid{grid-template-columns:1fr}.hero__copy{max-width:800px}.hero__visual{min-height:480px;width:min(640px,100%);margin-left:auto}.service-grid{grid-template-columns:1fr 1fr}.approach__grid,.partnerships__grid{gap:4rem} }
@media(max-width:720px){
  .shell{width:min(100% - 2rem,1180px)} html{scroll-padding-top:6rem}.contact-bar p,.contact-bar__links a:first-child{display:none}.contact-bar__inner{justify-content:center;min-height:2.5rem}.contact-bar__links{gap:.5rem}.contact-bar__links a{font-size:.75rem}
  .site-header__inner{min-height:4.8rem;grid-template-columns:1fr auto}.header-cta{display:none}.brand strong{font-size:1.05rem}.brand-mark{width:2rem;height:2rem}.brand-mark span{width:1.32rem;height:1.32rem;border-width:3px}
  .hero{padding-top:4.5rem} h1{font-size:clamp(2.85rem,13vw,4.2rem)} h2{font-size:clamp(2.25rem,10vw,3.25rem)}.hero__actions{align-items:flex-start;flex-direction:column}.hero__actions .button{width:100%}.hero__visual{min-height:430px}.hero__image{inset:0 0 5rem 1.5rem;border-radius:6rem 6rem .25rem .25rem}.hero__visual::before{width:7rem;height:7rem;top:2rem}.hero__note{right:1rem;grid-template-columns:1fr;gap:.7rem;padding:1.25rem 1.4rem}.hero__note p{font-size:1.1rem}.hero__footnote{margin-top:3rem;align-items:flex-start;flex-direction:column;gap:.5rem}.hero__footnote .line{display:none}
  .split-intro,.section-heading,.approach__grid,.workforce__card,.partnerships__grid,.contact__grid{grid-template-columns:1fr}.split-intro,.section-heading{gap:2rem}.prose-large{padding-top:0}.service-grid{grid-template-columns:1fr;margin-top:3rem}.service-card h3{margin-top:2.2rem}.boundary-note{grid-template-columns:1fr;gap:.8rem}.approach__intro{position:static}.workforce__card{gap:2rem}.check-list{grid-template-columns:1fr}.contact__grid{gap:3rem}
  .site-footer__top{padding-block:3rem;grid-template-columns:1fr;align-items:start}.site-footer__top p{text-align:left;margin:0}.site-footer__top>a:last-child{justify-self:start;overflow-wrap:anywhere}.site-footer__bottom{padding-block:1.2rem;align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
