:root{--ink:#173b3a;--ink-deep:#122f30;--muted:#65726d;--paper:#f5f5ee;--white:#fff;--line:#d8dfd6;--sage:#b8d7a8;--sage-dark:#526d4e;--gutter:clamp(24px,5.5vw,92px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}::selection{background:var(--sage);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7c9972;outline-offset:5px}img{display:block;max-width:100%}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1,h2{letter-spacing:-.055em}h2{font-size:clamp(35px,3.55vw,56px);line-height:1.13}h2>span{color:var(--muted)}p{line-height:1.7}button{border:0;background:none;color:inherit}.section-wrap{padding-left:var(--gutter);padding-right:var(--gutter);max-width:1680px;margin-inline:auto}.svg-library,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link{position:fixed;left:20px;top:-80px;z-index:100;background:var(--ink);color:white;padding:14px 20px}.skip-link:focus{top:12px}.scroll-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:55;background:var(--sage-dark);transform:scaleX(0);transform-origin:left;pointer-events:none}
.site-header{position:fixed;top:0;inset-inline:0;z-index:50;display:flex;align-items:center;justify-content:space-between;min-height:96px;padding:15px var(--gutter);border-bottom:1px solid var(--line);background:rgba(245,245,238,.94);backdrop-filter:blur(20px);transition:box-shadow .3s,min-height .3s}.site-header.scrolled{box-shadow:0 6px 26px #142c2b09;min-height:78px}.brand{display:inline-flex;gap:19px;align-items:center;flex-shrink:0}.wordmark{font-size:50px;font-weight:800;letter-spacing:-.08em;line-height:1}.brand-dot{color:#7c9972}.brand-name{font-size:12px;line-height:1.25;letter-spacing:.025em;border-left:1px solid #b8c4bb;padding-left:18px}.brand-name strong{font-weight:600}.site-header nav{display:flex;gap:34px;align-items:center;font-size:13px;font-weight:500}.site-header nav>a{padding:12px 0;position:relative}.site-header nav>a:not(.nav-contact)::after{content:"";position:absolute;left:0;bottom:5px;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s}.site-header nav>a:hover::after,.site-header nav>a[aria-current]::after{transform:scaleX(1)}.site-header .nav-contact{border:1px solid #b8c4bb;padding:13px 18px;display:flex;align-items:center;gap:28px;transition:background .3s}.nav-contact svg{width:18px;height:18px}.nav-contact:hover{background:#e4eadf}.menu-toggle{display:none}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:600;display:flex;gap:10px;align-items:center}.status-dot{width:6px;height:6px;border-radius:50%;background:#7c9972;display:inline-block;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-height:54px;padding:17px 22px;font-size:12px;font-weight:600;letter-spacing:.01em;transition:background .3s,transform .3s}.button svg{width:20px;height:20px;transition:transform .3s}.button:hover svg{transform:translate(3px,-1px)}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#285552;transform:translateY(-2px)}.intro-strip{max-width:1680px;margin:auto;padding:30px var(--gutter);display:flex;gap:38px;align-items:center;border-bottom:1px solid var(--line)}.intro-strip>p:first-child{display:flex;gap:21px;align-items:center}.intro-strip strong{font-weight:400;font-size:48px;letter-spacing:-.07em;line-height:1}.intro-strip p span{font-size:11px;line-height:1.7}.strip-divider{width:1px;height:45px;background:var(--line);margin-inline:5px}.strip-statement{font-size:12px;line-height:1.7}.strip-statement span{color:var(--muted)}.strip-location{margin-left:auto;font-size:11px;display:flex;align-items:center;gap:10px}
.services{padding-top:105px;padding-bottom:88px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:42px}.section-kicker{margin-bottom:24px;color:var(--sage-dark)}.section-heading>p{color:var(--muted);max-width:320px;font-size:14px;margin-bottom:5px}.service-filters{display:flex;gap:9px;margin-bottom:27px;flex-wrap:wrap}.service-filters button{padding:10px 16px;min-height:40px;border:1px solid var(--line);border-radius:3px;font-size:11px;transition:background .2s,color .2s}.service-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.service-filters button:hover:not([aria-pressed=true]){background:#e6ebdf}.service-filters span{margin-left:14px;color:var(--sage);font-size:9px}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);align-items:start}.service-card{background:#fafbf6;height:100%;min-width:0;position:relative;transition:background .35s;scroll-margin-top:120px}.service-card[hidden]{display:none}.service-card:hover,.service-card[open]{background:#eaf0e4}.service-card summary{list-style:none;padding:27px 23px 22px;cursor:pointer;position:relative}.service-card summary::-webkit-details-marker{display:none}.card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.service-icon{width:34px;height:34px;stroke-width:1.35}.card-number{font:10px monospace;color:#879488}.service-card h3{font-size:18px;font-weight:500;letter-spacing:-.035em;margin-bottom:13px}.service-card summary>p{font-size:12px;color:var(--muted);line-height:1.8;min-height:86px}.card-action{display:flex;justify-content:space-between;align-items:center;margin-top:25px;font-size:10px;letter-spacing:.035em}.plus{position:relative;width:22px;height:22px;border:1px solid #c5d0c0;border-radius:50%;transition:transform .3s}.plus::before,.plus::after{content:"";position:absolute;width:8px;height:1px;background:var(--ink);left:6px;top:9px}.plus::after{transform:rotate(90deg);transition:transform .3s}.service-card[open] .plus::after{transform:rotate(0)}.service-detail{margin:0 23px;padding:20px 0 24px;border-top:1px solid #cbd7c4;font-size:12px;animation:fade-in .35s}.service-detail p{color:var(--muted)}.service-detail ul{padding-left:17px;line-height:1.9;margin:14px 0 21px}.service-detail a{font-weight:600;font-size:11px;display:flex;justify-content:space-between;gap:8px}.service-detail a:hover{text-decoration:underline}.services-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:29px}.services-bottom p{font-size:11px;color:var(--muted)}.services-bottom strong{font-weight:500;color:var(--ink)}.text-link{display:inline-flex;gap:28px;align-items:center;font-size:12px;font-weight:500;padding:9px 0;border-bottom:1px solid #a8b8a2}.text-link svg{height:17px;width:17px;transition:transform .3s}.text-link:hover svg{transform:translate(2px,-2px)}
.process-steps{grid-column:1/-1;list-style:none;padding:40px 0 0;margin:12px 0 0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #476258;gap:55px}.process-steps li>span{display:block;color:#a9c29b;font:10px monospace;margin-bottom:15px}.process-steps h3{font-size:18px;letter-spacing:-.025em;margin-bottom:12px}.process-steps p{font-size:12px;color:#aabeb6;max-width:280px}
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,130px);padding-top:110px;padding-bottom:110px;align-items:center}.about-art{min-height:415px;align-self:stretch;position:relative;overflow:hidden;background:#e5e9dd;display:flex;align-items:center;justify-content:center}.about-coordinate{position:absolute;top:27px;left:27px;font:8px monospace;letter-spacing:.12em;z-index:2}.about-monogram{font-size:clamp(130px,17vw,255px);letter-spacing:-.1em;font-weight:650;line-height:1;z-index:2;position:relative}.about-monogram>span{color:#8caa7c}.about-art-bottom{display:flex;justify-content:space-between;gap:10px;position:absolute;bottom:26px;left:27px;right:27px;font-size:9px;z-index:2}.contour{position:absolute;border:1px solid #a9bda677;width:530px;height:420px;border-radius:43% 57% 68% 32%/35% 37% 63% 65%;transform:rotate(-32deg);top:-175px;right:-185px}.contour-two{width:430px;height:340px;top:-135px;right:-140px}.contour-three{width:330px;height:260px;top:-95px;right:-95px}.contour-four{width:230px;height:180px;top:-55px;right:-50px}.about-copy>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);margin-top:24px;max-width:420px}.about-values{border-top:1px solid var(--line);padding-top:24px;margin-top:29px;display:flex;flex-wrap:wrap;gap:10px 20px;font-size:11px;font-weight:500}
.contact{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,8vw,130px);background:#e6ecde;padding-top:78px;padding-bottom:80px;position:relative;border-top:1px solid #d3ddcc}.contact-copy{align-self:center}.contact-copy h2{font-size:clamp(33px,3.3vw,51px)}.contact-copy>p:not(.eyebrow){color:var(--muted);font-size:14px;max-width:360px;margin:25px 0}.contact-email{display:flex;align-items:center;gap:20px;font-size:clamp(18px,2vw,27px);letter-spacing:-.035em;max-width:fit-content;padding:10px 0;border-bottom:1px solid #b4c3ad;overflow-wrap:anywhere}.contact-email svg{flex-shrink:0;width:21px}.contact-signature{display:block;margin-top:15px;color:var(--muted);font-size:10px}.project-form{padding:30px;background:#f6f8f0;border:1px solid #d4dfcc}.form-title{font-size:17px;font-weight:500;letter-spacing:-.025em;margin-bottom:24px}.project-form label{font-size:10px;display:block;margin-bottom:9px;font-weight:600;letter-spacing:.03em}.project-form label>span{font-weight:400;color:var(--muted)}.project-form select,.project-form textarea{display:block;border:1px solid #c5d0bf;border-radius:0;padding:12px;background:#fcfdf8;color:var(--ink);font-size:12px;width:100%;margin-bottom:20px;line-height:1.5}.project-form select{min-height:44px}.project-form textarea{resize:vertical;min-height:94px}.project-form textarea::placeholder{color:#77826f}.project-form .button{width:100%}.form-note{font-size:10px!important;line-height:1.6!important;color:var(--muted);margin-top:14px}.form-status{font-size:11px;margin-top:12px}.form-status:empty{display:none}.form-status a{text-decoration:underline;display:inline-block;margin-top:8px}.site-footer{padding-top:38px;padding-bottom:23px}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:35px}.footer-top .wordmark{font-size:41px}.footer-top .brand-name{font-size:10px}.back-top{display:flex;gap:25px;font-size:10px;align-items:center}.back-top span{font-size:19px}.footer-bottom{display:flex;gap:25px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:19px;font-size:9px;color:var(--muted)}.reveal.is-ready{opacity:0;transform:translateY(22px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.is-ready.is-visible{opacity:1;transform:translateY(0)}
@keyframes arrow-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes fade-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important}html[data-motion=off] .reveal.is-ready{opacity:1;transform:none}

@media(max-width:1100px){:root{--gutter:40px}.site-header nav{gap:22px}.brand-name{font-size:10px}.wordmark{font-size:45px}.brand{gap:14px}.brand-name{padding-left:14px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card summary>p{min-height:48px}.service-card summary{padding:28px}.service-detail{margin-inline:28px}.service-card h3{font-size:21px}.service-card summary>p{font-size:13px}.section-heading{gap:40px}.section-heading>p{max-width:275px}.contact{gap:40px}.project-form{padding:25px}}
@media(max-width:820px){:root{--gutter:28px}.site-header{min-height:80px}.site-header.scrolled{min-height:72px}.site-header nav{gap:18px;font-size:11px}.site-header .nav-contact{gap:12px;padding:11px}.brand-name{display:none}.intro-strip{gap:24px}.intro-strip strong{font-size:40px}.strip-location{font-size:10px}.services{padding-block:75px}.section-heading{display:block}.section-heading>p{max-width:470px;margin-top:25px}.services-bottom{align-items:flex-start}.services-bottom p{max-width:340px}.services-bottom .text-link{flex-shrink:0}.process-steps{gap:28px}.process-steps h3{font-size:16px}.about{gap:35px;padding-block:75px}.about-art{min-height:390px}.about-art-bottom{flex-direction:column}.about-monogram{font-size:150px}.about-copy h2{font-size:33px}.about-copy>p:not(.eyebrow){font-size:13px}.contact{grid-template-columns:1fr 1fr;gap:32px}.contact-copy h2{font-size:33px}.contact-copy>p:not(.eyebrow){font-size:13px}.project-form{padding:21px}.contact-email{font-size:18px;gap:8px}}
@media(max-width:640px){:root{--gutter:23px}html{scroll-padding-top:85px}.site-header{min-height:76px}.brand-name{display:block;font-size:10px}.wordmark{font-size:42px}.menu-toggle{display:flex;align-items:center;gap:14px;padding:12px 0 12px 12px;font-size:11px;min-height:44px}.menu-lines{width:21px;height:12px;position:relative}.menu-lines::before,.menu-lines::after{content:"";position:absolute;left:0;width:21px;height:1px;background:currentColor;transition:transform .25s,top .25s;top:2px}.menu-lines::after{top:10px}.menu-toggle[aria-expanded=true] .menu-lines::before{top:6px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines::after{top:6px;transform:rotate(-45deg)}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:25px var(--gutter) 35px;box-shadow:0 30px 40px #122f3022;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:8px}.site-header nav.is-open{display:flex}.site-header nav>a{font-size:18px;padding:16px 0}.site-header .nav-contact{font-size:13px;padding:17px;margin-top:12px;justify-content:space-between}.intro-strip{padding-block:24px;gap:20px;flex-wrap:wrap}.intro-strip>p:first-child{gap:13px}.intro-strip p span{font-size:10px}.intro-strip strong{font-size:39px}.strip-divider{margin:0;height:38px}.strip-statement{font-size:10px}.strip-location{width:100%;padding-top:14px;border-top:1px solid var(--line);margin-top:0;font-size:10px}.services{padding-top:62px;padding-bottom:55px}.section-kicker{font-size:9px;margin-bottom:20px}.section-heading{margin-bottom:29px}h2{font-size:35px}.section-heading>p{font-size:13px;max-width:350px;margin-top:21px}.service-filters{gap:6px;margin-bottom:21px}.service-filters button{font-size:10px;padding:9px 11px}.service-filters span{margin-left:6px}.service-grid{grid-template-columns:1fr}.service-card summary{padding:23px}.card-top{margin-bottom:18px}.service-card summary>p{min-height:0;font-size:13px;max-width:420px}.service-card h3{font-size:22px}.card-action{margin-top:20px}.service-icon{width:32px;height:32px}.service-detail{margin-inline:23px}.services-bottom{display:block;padding-top:22px}.services-bottom p{max-width:100%;font-size:12px}.services-bottom .text-link{margin-top:15px;font-size:12px}.process-steps{grid-template-columns:1fr;padding-top:25px;margin-top:10px;gap:24px}.process-steps li{display:grid;grid-template-columns:32px 1fr;gap:8px 15px}.process-steps li>span{grid-row:1/3;margin:5px 0 0}.process-steps h3{margin:0;font-size:18px}.process-steps p{grid-column:2;max-width:100%;font-size:12px}.about{grid-template-columns:1fr;gap:36px;padding-block:60px}.about-art{min-height:330px;order:2}.about-monogram{font-size:190px}.about-copy h2{font-size:35px}.about-copy>p:not(.eyebrow){font-size:14px;max-width:none}.about-art-bottom{flex-direction:row;font-size:8px}.about-values{font-size:11px;justify-content:space-between;gap:8px}.contact{grid-template-columns:1fr;gap:32px;padding-block:55px}.contact-copy h2{font-size:35px;max-width:390px}.contact-copy>p:not(.eyebrow){font-size:14px}.contact-email{font-size:24px;gap:15px}.project-form{padding:25px}.project-form select,.project-form textarea{font-size:16px}.form-title{font-size:18px}.project-form label{font-size:11px}.form-note{font-size:11px!important}.site-footer{padding-top:30px;padding-bottom:22px}.footer-top{padding-bottom:27px}.footer-top .brand-name{font-size:9px}.footer-top .wordmark{font-size:36px}.back-top{font-size:9px;gap:11px}.footer-bottom{flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:9px}.footer-bottom>span:nth-child(2){display:none}.reveal.is-ready{transform:translateY(14px)}}
html:not(.js) .menu-toggle,html:not(.js) #project-form>button{display:none}
@media(max-width:640px){html:not(.js) .site-header{flex-wrap:wrap;gap:12px}html:not(.js) .site-header nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px 18px;padding:0;border:0;box-shadow:none}html:not(.js) .site-header nav>a,html:not(.js) .site-header .nav-contact{font-size:11px;padding:8px 0;min-height:32px;border:0;margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal.is-ready{opacity:1;transform:none}}


.footer-bottom .footer-legal { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; }
.footer-bottom .footer-legal:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }

/* Full-width sunset hero: keep the light open and the copy grounded. */
.site-header:not(.scrolled) {
  color: #fffaf0;
  background: transparent;
  border-color: transparent;
  backdrop-filter: none;
}
.site-header:not(.scrolled) .brand-dot { color: #f0d39e; }
.site-header:not(.scrolled) .brand-name { border-color: #fffaf04d; }
.site-header:not(.scrolled) .nav-contact { border-color: #fffaf070; }
.site-header:not(.scrolled) .nav-contact:hover { background: #fffaf018; }
.site-header:not(.scrolled) nav>a:not(.nav-contact)::after { background: currentColor; }
.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: max(720px, 100svh);
  padding: 200px var(--gutter) 120px;
  overflow: hidden;
  color: #fffaf0;
  background: #303a32;
}
.hero-visual { position: absolute; inset: 0; z-index: -1; }
.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
  animation: sunset-arrive 14s cubic-bezier(.16, 1, .3, 1) both;
}
.image-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, #101d228a 0%, transparent 28%, #0d201b1a 48%, #0d201b9c 100%),
    linear-gradient(90deg, #14292380 0%, #15282138 44%, transparent 74%);
}
.hero-copy { width: 100%; max-width: 1180px; margin-inline: auto; }
.hero .eyebrow { color: #fff0d0; font-size: 10px; letter-spacing: .23em; }
.hero h1 {
  font-size: clamp(58px, 6.6vw, 108px);
  font-weight: 450;
  line-height: 1.04;
  letter-spacing: -.06em;
  margin: 26px 0 26px;
  text-shadow: 0 3px 30px #17251e30;
}
.hero h1>span { color: #f3d49c; }
.hero-description {
  max-width: 430px;
  font-size: 15px;
  line-height: 1.8;
  color: #f4f0e6;
  margin-bottom: 30px;
  text-shadow: 0 1px 12px #101d2280;
}
.button-hero {
  min-height: 56px;
  padding: 18px 24px;
  gap: 42px;
  background: #f4e5c7;
  color: #193c35;
  border-radius: 2px;
  box-shadow: 0 6px 30px #0e241c1a;
}
.button-hero:hover { background: #fff5de; transform: translateY(-2px); }
.hero-footer {
  position: absolute;
  bottom: 30px;
  left: var(--gutter);
  right: var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.hero-scroll {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-height: 44px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.hero-scroll>span:last-child { font-size: 19px; animation: arrow-drift 2.5s infinite; }
.hero-note { color: #e4e3d7; font-size: 10px; letter-spacing: .035em; }
.hero :focus-visible { outline-color: #f4d59e; }
@keyframes sunset-arrive { from { transform: scale(1); } to { transform: scale(1.03); } }
html[data-motion=off] .hero-image { transform: none; }
@media (min-width: 1600px) {
  .hero { padding-bottom: 145px; }
  .hero-copy { max-width: 1440px; }
  .hero-description { font-size: 17px; max-width: 480px; }
}
@media (max-width: 820px) {
  .hero { min-height: max(740px, 100svh); padding-top: 190px; padding-bottom: 118px; }
  .hero h1 { font-size: clamp(50px, 7.9vw, 66px); }
  .hero-image { object-position: 65% center; }
}
@media (max-width: 640px) {
  .site-header nav { color: var(--ink); }
  .site-header:not(.scrolled) .nav-contact { border-color: #b8c4bb; }
  .site-header:not(.scrolled) .nav-contact:hover { background: #e4eadf; }
  .hero { min-height: max(700px, 100svh); padding-top: 220px; padding-bottom: 94px; }
  .hero-image { object-position: 74% center; }
  .image-shade {
    background: linear-gradient(180deg, #101d2280 0%, #13251d0a 23%, #13251d35 40%, #0d201bc2 100%);
  }
  .hero .eyebrow { font-size: 8px; letter-spacing: .19em; }
  .hero h1 { font-size: clamp(32px, 10.4vw, 57px); line-height: 1.08; margin: 22px 0; }
  .hero h1>span { display: inline-block; }
  .hero-description { font-size: 13px; max-width: 360px; line-height: 1.75; margin-bottom: 26px; }
  .button-hero { font-size: 11px; padding: 16px 21px; min-height: 54px; gap: 34px; }
  .hero-footer { bottom: 20px; }
  .hero-note { display: none; }
  .hero-scroll { font-size: 8px; }
  html:not(.js) .site-header nav { color: #fffaf0; }
}
@media (max-width: 360px) {
  .hero { padding-top: 210px; }
}
@media (prefers-reduced-motion: reduce) { .hero-image { animation: none; transform: none; } }

/* The drawing stays geometrically fixed; labels occupy its empty margins. */
.approach { --electric: #ebc780; --heat: #81cdc6; --fire: #eea594; background: var(--ink-deep); color: var(--paper); }
.approach-inner { padding-block: 82px 70px; }
.approach-copy { display: grid; grid-template-columns: 1.2fr .8fr; gap: 0 72px; align-items: start; margin-bottom: 42px; }
.approach .section-kicker { grid-column: 1/-1; color: var(--sage); }
.approach h2 { grid-row: 2/4; max-width: 700px; }
.approach h2>span { color: #acc3a4; }
.approach-copy>p:not(.eyebrow) { max-width: 370px; color: #bdcdc4; font-size: 14px; margin: 4px 0 16px; }
.approach .text-link { justify-self: start; align-self: end; border-color: #607b6c; }
.coordination { border: 1px solid #506f66; background: #183737; }
.coordination-figure { min-width: 0; margin: 0; padding: 25px 30px 0; }
.coordination-figure figcaption { display: flex; justify-content: space-between; gap: 12px; color: #d0ddd4; font: 12px/1.5 "Consolas", monospace; letter-spacing: .06em; }
.coordination-figure figcaption span:last-child { color: #a6bcb1; text-align: right; }
.diagram-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; color: #b7cac0; font-size: 13px; }
.diagram-zoom { flex-shrink: 0; display: none; min-height: 44px; padding: 8px 0 8px 10px; gap: 9px; align-items: center; font-size: 13px; color: #d4e5b9; }
.is-interactive .diagram-zoom { display: inline-flex; }
.coordination-viewport { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-color: #809d8d #142f30; scrollbar-width: thin; }
.coordination-viewport:focus-visible { outline: 2px solid #d4e5b9; outline-offset: -2px; }
.coordination-drawing { position: relative; }
.coordination-figure.is-zoomed .coordination-drawing { min-width: 1600px; }
.diagram-pan-hint { display: none; color: #bdcec2; font-size: 12px; margin: 8px 0 14px; }
.coordination-figure.is-zoomed .diagram-pan-hint { display: block; }
.coordination-drawing>svg { display: block; width: 100%; height: auto; stroke-width: 1.4; }
.building-shell { stroke: #89a296; }
.room-fill { fill: #203f3c; stroke: none; }
.shaft-fill { fill: #122f30; stroke: none; }
.cut-fill { fill: #567169; stroke: #a1b9a9; }
.cut-hatch { fill: url(#section-hatch); stroke: none; }
.roof-insulation { fill: #76908130; stroke: #a1b9a9; }
#section-hatch path { stroke: #b5c9b9; stroke-width: .65; opacity: .5; }
.building-furniture { stroke: #6b8980; }
.building-window { stroke: #bed1c3; }
.system-electric { color: var(--electric); stroke: currentColor; }
.system-heat { color: var(--heat); stroke: currentColor; }
.system-fire { color: var(--fire); stroke: currentColor; }
.system-route { stroke-width: 3; }
.system-electric .system-route { stroke-dasharray: 8 4; }
.dc-route { stroke-width: 2.1; }
.connection-dot { fill: currentColor; stroke: none; }
.wire-separation { stroke: #183737; stroke-width: 7; fill: none; }
.pv-support { stroke: #93a598; stroke-width: 1.5; }
.pv-module { fill: #ebc78025; stroke-width: 2; }
.heat-valves { fill: #183737; stroke-width: 1.5; }
.system-device { fill: #183737; stroke-width: 2; }
.fire-seal { fill: #eea59430; stroke-width: 2.5; }
.fire-guide { stroke-dasharray: 2 5; }
.interface-region { fill: transparent; stroke: transparent; stroke-width: 1.5; }
.diagram-content { transition: opacity 180ms ease; }
.is-exploring .diagram-content { opacity: .42; }
.diagram-focus { opacity: 0; pointer-events: none; transition: opacity 180ms ease; filter: drop-shadow(0 0 5px #e4edc532); }
.is-exploring .diagram-focus { opacity: 1; }
.diagram-focus .interface-region { fill: #d3e7bc08; stroke: #c9dfa9; stroke-dasharray: 5 5; }
.component-hotspots { position: absolute; inset: 0; pointer-events: none; }
.component-target { position: absolute; pointer-events: auto; border-radius: 5px; padding: 0; cursor: pointer; background: transparent; }
.component-target:focus-visible { outline: 2px solid #eff2dc; outline-offset: 4px; }
.component-caption { position: absolute; z-index: 2; width: max-content; max-width: calc(100% - 20px); padding: 8px 16px 10px; border-left: 2px solid var(--part-color, #d4e5b9); background: #142f30; color: #f3f3e6; pointer-events: none; line-height: 1.25; box-shadow: 0 4px 18px #0a232526; }
.component-caption span { display: block; font-size: 11px; letter-spacing: .05em; color: var(--part-color, #c9dfa9); margin-bottom: 5px; }
.component-caption strong { display: block; font-size: clamp(18px, 1.6vw, 23px); font-weight: 500; }
.component-caption[hidden], .explorer-selection[hidden], .explorer-clear[hidden], .explorer-idle[hidden] { display: none; }
.explorer-toolbar { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 10px 20px; border-top: 1px solid #456158; padding: 13px 0; }
.system-legend, .interface-hotspots { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.system-legend button { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 4px 0; font-size: 13px; }
.legend-electric { color: var(--electric); }
.legend-heat { color: var(--heat); }
.legend-fire { color: var(--fire); }
.system-legend i { display: inline-block; width: 19px; border-top: 2px solid currentColor; }
.system-legend .legend-electric i { border-top-style: dashed; }
.system-legend .legend-fire i { height: 9px; width: 15px; border: 1px solid currentColor; background: #eea59430; }
.interface-hotspots { gap: 7px; }
.interface-point { width: 44px; height: 44px; border: 1px solid #637f6f; border-radius: 50%; color: #d4e5b9; font: 14px "Consolas", monospace; transition: background 160ms ease, color 160ms ease; }
.interface-point.is-preview, .interface-point[aria-pressed=true] { background: #d4e5b9; color: #142e2c; }
.system-legend button.is-preview, .system-legend button[aria-pressed=true] { text-decoration: underline; text-underline-offset: 6px; }
.component-picker { display: none; }
.explorer-detail { position: relative; min-height: 170px; padding: 25px 44px 26px 0; border-top: 1px solid #456158; display: grid; align-items: center; }
.explorer-idle { color: #adbbb2; font-size: 15px; }
.explorer-category { color: var(--part-color, #c9dfa9); font: 11px/1.5 "Consolas", monospace; letter-spacing: .06em; margin-bottom: 5px; }
.explorer-selection h3 { font-size: 24px; font-weight: 500; letter-spacing: -.025em; line-height: 1.2; margin-bottom: 10px; }
.explorer-note { color: #c2d2c8; font-size: 15px; line-height: 1.65; max-width: 880px; }
.explorer-clear { position: absolute; right: 0; top: 20px; min-height: 44px; padding: 0 5px; color: #d4e5b9; font-size: 12px; }
.explorer-clear span { margin-left: 8px; font-size: 22px; vertical-align: middle; }
.is-interactive .explorer-fallback { display: none; }
.explorer-fallback { padding: 25px 30px; }
.explorer-fallback .interface-info { margin-top: 24px; }
.explorer-fallback .interface-context { max-width: 750px; }
.explorer-fallback .interface-trades { display: flex; gap: 25px; padding: 0; list-style: none; }
.coordination:not(.is-interactive) .explorer-toolbar, .coordination:not(.is-interactive) .explorer-detail, .coordination:not(.is-interactive) .diagram-tools { display: none; }
.approach .process-steps { margin-top: 40px; }
@media (max-width: 1100px) {
  .approach-copy { gap: 0 35px; }
  .approach h2 { font-size: 37px; }
  .coordination-figure { padding: 22px 20px 0; }
  .component-caption { display: none; }
  .component-picker { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; padding: 0 0 18px; font-size: 13px; }
  .component-picker select { color: #f3f3e6; background: #142f30; border: 1px solid #637f6f; border-radius: 3px; min-height: 44px; padding: 8px 10px; width: 100%; }
  .component-picker option { background: #142f30; }
  .explorer-detail { min-height: 205px; }
  .explorer-selection { padding-right: 0; }
  .explorer-clear { font-size: 0; top: 18px; width: 44px; }
  .explorer-clear span { font-size: 25px; margin: 0; }
}
@media (max-width: 820px) {
  .approach-inner { padding-block: 65px; }
  .approach-copy { grid-template-columns: 1fr; margin-bottom: 32px; }
  .approach h2 { grid-row: auto; max-width: 590px; }
  .approach-copy>p:not(.eyebrow) { margin: 23px 0 15px; max-width: 470px; }
}
@media (max-width: 640px) {
  .approach-inner { padding-block: 55px; }
  .approach h2 { font-size: 35px; }
  .approach-copy>p:not(.eyebrow) { font-size: 13px; }
  .coordination-figure { padding: 18px 12px 0; }
  .coordination-figure figcaption { font-size: 9px; letter-spacing: .025em; }
  .coordination-drawing>svg { stroke-width: 1.8; }
  .diagram-tools { flex-wrap: wrap; gap: 0 10px; margin-top: 10px; font-size: 11px; }
  .diagram-zoom { padding-left: 0; font-size: 12px; }
  .system-legend { gap: 0 14px; }
  .system-legend button { font-size: 12px; }
  .explorer-toolbar { gap: 10px; }
  .component-picker { grid-template-columns: 1fr; gap: 7px; }
  .explorer-detail { min-height: 245px; padding: 22px 34px 25px 0; }
  .explorer-selection h3 { font-size: 22px; }
  .explorer-note { font-size: 14px; }
  .approach .process-steps { margin-top: 32px; }
}
