:root{--green-darkest: #173404;--green-dark: #27500A;--green-mid: #3B6D11;--green: #639922;--green-light: #97C459;--green-pale: #C0DD97;--green-bg: #EAF3DE}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;color:#1f2d1f}.navbar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 2rem;background:var(--green-darkest);color:#fff;position:sticky;top:0;z-index:100;box-shadow:0 2px 10px #00000026}.navbar-brand{font-weight:600;display:flex;align-items:center;transition:opacity .2s ease}.navbar-brand:hover{opacity:.85}.navbar-logo{height:64px;width:auto;display:block}.navbar-links{display:flex;align-items:center;gap:.25rem;list-style:none}.navbar-links a{position:relative;display:inline-block;color:var(--green-pale);text-decoration:none;font-weight:500;padding:.5rem .9rem;border-radius:6px;transition:color .2s ease,background-color .2s ease}.navbar-links a:after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.32rem;height:2px;background:var(--green-light);transform:scaleX(0);transform-origin:center;transition:transform .2s ease}.navbar-links a:hover{color:#fff;background:#ffffff14}.navbar-links a:hover:after{transform:scaleX(1)}.navbar-links a.is-active{color:#fff;background:#ffffff1f}.navbar-links a.is-active:after{transform:scaleX(1);background:var(--green-light)}.navbar-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0;border:none;background:transparent;cursor:pointer;z-index:101}.navbar-toggle span{display:block;width:24px;height:2px;margin:0 auto;background:#fff;border-radius:2px;transition:transform .25s ease,opacity .25s ease}.navbar-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.navbar-toggle.is-open span:nth-child(2){opacity:0}.navbar-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.footer{text-align:center;padding:1.5rem;background:var(--green-darkest);color:var(--green-pale)}@media (max-width: 720px){.navbar-toggle{display:flex}.navbar-links{position:fixed;top:0;right:0;height:100vh;width:min(280px,80vw);flex-direction:column;align-items:stretch;gap:.25rem;background:var(--green-darkest);padding:5.5rem 1.5rem 2rem;box-shadow:-4px 0 20px #00000040;transform:translate(100%);transition:transform .3s ease}.navbar-links.is-open{transform:translate(0)}.navbar-links li{width:100%}.navbar-links a{display:block;padding:.85rem 1rem}.navbar-links a:after{display:none}}.page-header{padding:2.5rem 2rem 0}.page-header h2{position:relative;display:inline-block;padding-bottom:.7rem;font-size:1.85rem;color:var(--green-darkest)}.page-header h2:after{content:"";position:absolute;left:0;bottom:0;width:46px;height:3px;border-radius:2px;background:var(--green-mid)}.page-header p{margin-top:.75rem;max-width:560px}.page-header p:last-child{margin-bottom:0}.page-header-standalone{padding-bottom:2.5rem}.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}.reveal-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}.ba-slider{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:10px;background:var(--green-bg);touch-action:pan-y;cursor:ew-resize;-webkit-user-select:none;user-select:none;isolation:isolate}.ba-slider-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;transform:scale(1);transition:transform .5s ease}.project-card:hover .ba-slider-img{transform:scale(1.045)}.ba-slider-before-wrap{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0);transition:clip-path .15s ease-out}.ba-slider.is-dragging .ba-slider-before-wrap{transition:none}.ba-slider-tag{position:absolute;top:12px;display:flex;align-items:center;gap:5px;background:#17340473;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:4px 11px;border-radius:999px;z-index:1;pointer-events:none}.ba-slider-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green-light)}.ba-slider-tag-before{left:12px}.ba-slider-tag-after{right:12px}.ba-slider-tag-after:before{background:#fff}.ba-slider-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:1;background:#0a14058c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-size:.7rem;font-weight:500;white-space:nowrap;padding:6px 13px;border-radius:999px;pointer-events:none;animation:ba-hint-pulse 2.2s ease-in-out infinite}.ba-slider-handle{position:absolute;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,#fff0,#ffffffe6 12%,#ffffffe6 88%,#fff0);transform:translate(-50%);display:flex;align-items:center;justify-content:center;z-index:2;transition:left .15s ease-out}.ba-slider.is-dragging .ba-slider-handle{transition:none}.ba-slider-handle-grip{width:42px;height:42px;border-radius:50%;background:#fff;color:var(--green-darkest);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #0000004d,0 0 0 5px #ffffff40;transition:transform .2s ease,box-shadow .2s ease}.ba-slider-handle:hover .ba-slider-handle-grip{transform:scale(1.08)}.ba-slider.is-dragging .ba-slider-handle-grip{transform:scale(1.12);box-shadow:0 6px 18px #00000059,0 0 0 6px #ffffff59}.ba-slider-handle:focus-visible .ba-slider-handle-grip{outline:2px solid var(--green-light);outline-offset:2px}@keyframes ba-hint-pulse{0%,to{opacity:.9}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.ba-slider-img,.ba-slider-before-wrap,.ba-slider-handle,.ba-slider-handle-grip{transition:none}.ba-slider-hint{animation:none}}.hero{position:relative;min-height:340px;display:flex;align-items:flex-end;overflow:hidden}.hero-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;z-index:0}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#0a1405cc,#0a140559 45%,#0a14050d 75%);z-index:0}.hero-content{position:relative;z-index:1;padding:2rem;color:#fff;max-width:420px}.hero-content h1{font-size:2rem;margin-bottom:.5rem}.hero-content p{margin-bottom:1.25rem;color:var(--green-bg)}.hero-cta{display:inline-block;background:var(--green-mid);color:var(--green-bg);text-decoration:none;padding:.6rem 1.25rem;border-radius:6px;font-size:.9rem}.hero-cta:hover{background:var(--green)}@media (max-width: 640px){.hero{min-height:260px;align-items:center}.hero-overlay{background:linear-gradient(180deg,#0a14058c,#0a14056b,#0a140599)}.hero-content{padding:1.5rem;max-width:100%}.hero-content h1{font-size:1.6rem}.hero-content p{margin-bottom:1rem}}.home-section{padding:2rem}.home-section-label{font-size:.85rem;color:var(--green-mid);margin-bottom:.75rem;font-weight:500}.services-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;margin-bottom:1rem}.service-preview-card{background:var(--green-bg);border-radius:8px;padding:1rem;display:flex;align-items:flex-start;gap:10px;color:var(--green-dark);text-align:left;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.service-preview-card:hover{background:var(--green-pale);transform:translateY(-3px);box-shadow:0 6px 16px #17340426}.service-preview-card-icon{flex:none;color:var(--green-dark);margin-top:2px}.service-preview-card-body{display:flex;flex-direction:column;gap:3px;min-width:0}.service-preview-card-body strong{font-size:.9rem;color:var(--green-darkest);overflow-wrap:break-word}.service-preview-card-body span{font-size:.8rem;color:var(--green-mid);line-height:1.35;overflow-wrap:break-word}.home-project-preview{max-width:500px;margin-bottom:1rem;border-radius:8px;overflow:hidden}.section-link{color:var(--green-mid);text-decoration:none;font-size:.9rem;font-weight:500}.section-link:hover{text-decoration:underline}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;padding:2rem;align-items:start}.service-card{border:1px solid var(--green-pale);border-radius:10px;background:#fff;overflow:hidden;scroll-margin-top:96px;transition:box-shadow .25s ease,border-color .25s ease,transform .25s ease}.service-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #17340424;border-color:var(--green)}.service-card.is-open{border-color:var(--green);box-shadow:0 10px 24px #17340424}.service-card-header{all:unset;box-sizing:border-box;display:flex;align-items:flex-start;gap:.9rem;width:100%;padding:1.5rem;cursor:pointer}.service-card-icon{flex:none;width:44px;height:44px;border-radius:50%;background:var(--green-bg);color:var(--green-dark);display:flex;align-items:center;justify-content:center;transition:background-color .25s ease,color .25s ease,transform .25s ease}.service-card:hover .service-card-icon,.service-card.is-open .service-card-icon{background:var(--green-mid);color:#fff;transform:scale(1.08)}.service-card-heading{flex:1;min-width:0}.service-card-heading h3{margin-bottom:4px;overflow-wrap:break-word}.service-card-heading p{color:var(--green-mid);font-size:.9rem;overflow-wrap:break-word}.service-card-chevron{flex:none;margin-top:6px;color:var(--green-mid);transition:transform .3s ease,color .25s ease}.service-card.is-open .service-card-chevron{transform:rotate(180deg);color:var(--green-dark)}.service-card-header:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:10px}.service-card-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}.service-card.is-open .service-card-panel{grid-template-rows:1fr}.service-card-panel-inner{overflow:hidden;min-height:0}.service-card-details{margin:0 1.5rem 1.5rem;padding-top:.85rem;border-top:1px solid var(--green-bg);color:#3a4a34;font-size:.9rem;line-height:1.55}@media (prefers-reduced-motion: reduce){.service-card,.service-card-icon,.service-card-chevron,.service-card-panel,.service-preview-card{transition:none}}.contact-list{list-style:none;padding:2rem;max-width:400px}.contact-list li{display:flex;flex-direction:column;gap:4px;padding:1rem 0;border-bottom:1px solid var(--green-pale)}.contact-list span{font-size:.85rem;color:var(--green-mid)}.contact-list a{color:var(--green-darkest);text-decoration:none;font-weight:500}.form-status{margin-top:10px;font-size:.9rem}.form-status-error{color:#a33}.quote-wizard{max-width:560px;padding:0 2rem 2.5rem}.quote-steps{display:flex;list-style:none;margin-bottom:.5rem}.quote-step-indicator{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.78rem;color:var(--green-mid);text-align:center}.quote-step-indicator:not(:last-child):after{content:"";position:absolute;top:16px;left:calc(50% + 20px);right:calc(-50% + 20px);height:2px;background:var(--green-pale);z-index:0;transition:background-color .3s ease}.quote-step-indicator.is-done:not(:last-child):after{background:var(--green-dark)}.quote-step-dot{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid var(--green-pale);color:var(--green-mid);display:flex;align-items:center;justify-content:center;font-weight:600;transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease}.quote-step-indicator.is-active .quote-step-dot{background:var(--green-mid);border-color:var(--green-mid);color:#fff;transform:scale(1.12)}.quote-step-indicator.is-done .quote-step-dot{background:var(--green-dark);border-color:var(--green-dark);color:#fff}.quote-step-indicator.is-clickable{cursor:pointer}.quote-step-label{max-width:90px}.quote-step-indicator.is-active .quote-step-label{color:var(--green-darkest);font-weight:600}.quote-step-counter{font-size:.85rem;color:var(--green-mid);margin-bottom:1.5rem}.quote-form{overflow:clip}.quote-track{display:flex;transition:transform .35s ease,height .25s ease;align-items:flex-start}.quote-panel{flex:none;width:100%;padding-right:4px}.quote-panel h3{margin-bottom:4px}.quote-panel-hint{color:var(--green-mid);font-size:.88rem;margin-bottom:1rem}.quote-field{border:none;margin:0 0 1.25rem;padding:0}.quote-field legend{font-size:.85rem;color:var(--green-mid);margin-bottom:8px;padding:0}.quote-field label{display:block;font-size:.85rem;color:var(--green-mid);margin-bottom:6px}.quote-field input,.quote-field textarea{width:100%;padding:10px 12px;border:1px solid var(--green-pale);border-radius:8px;font:inherit;transition:border-color .2s ease,box-shadow .2s ease}.quote-field input:focus,.quote-field textarea:focus{outline:none;border-color:var(--green-mid);box-shadow:0 0 0 3px #6399222e}.quote-optional{font-weight:400;opacity:.75}.chip-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.5rem}.chip{display:flex;align-items:center;gap:8px;padding:.6rem 1rem;border:1.5px solid var(--green-pale);border-radius:999px;background:#fff;color:var(--green-darkest);font:inherit;font-size:.9rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .2s ease,transform .2s ease}.chip svg{flex:none}.chip:hover{border-color:var(--green);transform:translateY(-2px)}.chip.is-selected{background:var(--green-mid);border-color:var(--green-mid);color:#fff}.chip-plain{padding:.55rem 1.1rem}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:.5rem}.option-card{display:flex;flex-direction:column;gap:2px;padding:.85rem 1rem;border:1.5px solid var(--green-pale);border-radius:10px;background:#fff;text-align:left;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .2s ease,box-shadow .2s ease}.option-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 6px 16px #1734041a}.option-card.is-selected{background:var(--green-mid);border-color:var(--green-mid);box-shadow:0 6px 16px #1734042e}.option-card-label{font-weight:600;color:var(--green-darkest)}.option-card.is-selected .option-card-label{color:#fff}.option-card-hint{font-size:.8rem;color:var(--green-mid)}.option-card.is-selected .option-card-hint{color:var(--green-pale)}.quote-error{color:#a33;font-size:.85rem;margin-top:.4rem}.quote-summary{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.quote-summary-row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--green-bg);font-size:.9rem}.quote-summary-row dt{color:var(--green-mid);flex:none}.quote-summary-row dd{flex:1;min-width:0;text-align:right;color:var(--green-darkest);font-weight:500;overflow-wrap:break-word}.quote-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem}.quote-btn{padding:.7rem 1.5rem;border:none;border-radius:8px;background:var(--green-darkest);color:#fff;font:inherit;font-weight:500;cursor:pointer;transition:background-color .2s ease,transform .2s ease}.quote-btn:hover{background:var(--green-dark);transform:translateY(-1px)}.quote-btn:disabled{opacity:.6;cursor:default;transform:none}.quote-btn-ghost{background:transparent;color:var(--green-mid);padding-left:.5rem;padding-right:.5rem}.quote-btn-ghost:hover{background:transparent;color:var(--green-darkest)}.quote-success{max-width:480px;margin:0 2rem 2.5rem;padding:2rem;border:1px solid var(--green-pale);border-radius:12px;background:var(--green-bg);text-align:center}.quote-success-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--green-mid);color:#fff;margin-bottom:1rem}.quote-success h3{margin-bottom:6px}.quote-success p{color:var(--green-mid);margin-bottom:1.25rem}@media (prefers-reduced-motion: reduce){.quote-track,.quote-step-dot,.quote-step-indicator:after,.chip,.option-card,.quote-btn{transition:none}}@media (max-width: 480px){.quote-step-label{display:none}.quote-step-indicator:not(:last-child):after{top:16px}.service-card-header{gap:.6rem;padding:1.25rem}.service-card-icon{width:36px;height:36px}}.projects-intro{color:var(--green-mid)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding:2rem}.project-card{border:1px solid var(--green-pale);border-radius:10px;overflow:hidden;padding-bottom:1rem;background:#fff;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #17340429;border-color:var(--green)}.project-card h3{padding:.75rem 1rem 0}.project-card p{padding:.25rem 1rem 0;color:var(--green-mid);font-size:.9rem}@media (prefers-reduced-motion: reduce){.project-card{transition:none}}
