@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap");
:root{--forest:#123f34;--white:#f5faf7;--muted:#c6dbd0;--panel:#25594a;--line:rgba(198,219,208,.3)}
html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--forest);color:var(--white)}.dugan{font-family:Outfit,Arial,sans-serif;font-size:17px;line-height:1.6;background:var(--forest);color:var(--white)}.dugan *{box-sizing:border-box}.dugan a{color:inherit;text-decoration:none}.dugan button,.dugan input,.dugan select,.dugan textarea{font:inherit}.dugan button,.dugan summary{cursor:pointer}.dugan a:focus-visible,.dugan button:focus-visible,.dugan summary:focus-visible,.dugan input:focus-visible,.dugan select:focus-visible,.dugan textarea:focus-visible{outline:3px solid var(--white);outline-offset:5px}.dugan h1,.dugan h2,.dugan h3,.dugan p{margin:0}.dugan h1,.dugan h2{font-weight:600;letter-spacing:-.055em;line-height:1.03}.dugan h1{font-size:clamp(48px,6.4vw,94px)}.dugan h2{font-size:clamp(38px,5vw,70px)}.dugan h3{font-size:26px;line-height:1.2;letter-spacing:-.025em}.dugan p{color:var(--muted);max-width:60ch}.dugan p+p{margin-top:20px}.dugan svg path{fill:none;stroke:currentColor;stroke-width:3}.skip{position:absolute;top:-100px;left:20px;z-index:30;background:var(--white);color:var(--forest)!important;padding:12px}.skip:focus{top:10px}.site-header{height:80px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--forest)}.brand{display:inline-flex;gap:12px;align-items:center;font-size:26px;font-weight:800;line-height:1}.brand svg{width:40px;height:40px}.brand small{display:block;font-size:11px;letter-spacing:.3em;margin-top:6px}.site-header nav{display:flex;align-items:center;gap:24px;font-size:15px}.site-header nav>a{padding:9px 0}.site-header nav>a:hover{color:var(--muted)}.site-header .nav-quote{border:1px solid var(--muted);padding:10px 18px}.phone-link{font-family:"IBM Plex Mono",monospace}.menu-toggle{display:none}
.scroll-hero{height:180dvh;position:relative}.hero-stage{position:sticky;top:0;height:100dvh;overflow:hidden}.hero-stage picture,.hero-poster,.hero-video,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-poster,.hero-video{object-fit:cover}.hero-video{z-index:1}.hero-poster{z-index:0}.hero-shade{z-index:2;background:linear-gradient(90deg,rgba(18,63,52,.97),rgba(18,63,52,.62),transparent)}.hero-copy{position:relative;z-index:3;padding:clamp(110px,14vh,160px) 6vw 70px;max-width:880px}.location{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:24px!important}.hero-copy h1{margin-bottom:26px}.hero-copy>p:not(.location){max-width:540px;font-size:19px}.hero-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:32px}.hero-quote{display:inline-flex;align-items:center;gap:44px;padding:18px 24px;background:var(--white);color:var(--forest)!important;font-weight:600;box-shadow:4px 4px 0 var(--panel);transition:.2s}.hero-quote:hover{transform:translateY(-3px)}.hero-call{border-bottom:1px solid var(--muted);padding:10px 0}
.section{padding:100px 6vw;scroll-margin-top:20px}.section-intro{margin-top:25px!important;max-width:560px!important}.service-list{margin-top:50px;border-top:1px solid var(--line)}.service{border-bottom:1px solid var(--line)}.service summary{display:flex;align-items:center;gap:24px;padding:28px 0;list-style:none;font-size:30px;line-height:1.2;transition:transform .2s}.service summary:hover{transform:translateX(6px)}summary::-webkit-details-marker{display:none}.service summary>img{width:56px;height:56px;object-fit:contain}.service summary>span:first-of-type{min-width:32%}.service-intro{font-size:16px;color:var(--muted);flex:1}.plus{margin-left:auto;font-size:26px}.service[open] .plus,.faq details[open] summary span{transform:rotate(45deg)}.service-body{padding:0 0 30px;max-width:800px;margin-left:34%}.service-body a{display:inline-block;border-bottom:1px solid var(--muted);padding:12px 0 4px;margin-top:12px}.examples{font-family:"IBM Plex Mono",monospace;font-size:13px}.about{display:grid;grid-template-columns:1.2fr 1fr;gap:10vw;border-top:1px solid var(--line)}.about p{margin-top:26px}.porch-detail{width:100%;max-width:480px;aspect-ratio:3/2;object-fit:cover;margin-top:32px}.steps{list-style:none;counter-reset:step;padding:0;margin:0;border-top:1px solid var(--line)}.steps li{padding:26px 0 32px 52px;border-bottom:1px solid var(--line);position:relative}.steps li:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:24px;font:18px "IBM Plex Mono",monospace;color:var(--muted)}.steps p{margin-top:14px}.area{position:relative;min-height:560px;isolation:isolate;background:var(--panel);display:flex;align-items:flex-end}.area>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.area:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--forest),transparent);z-index:-1}.area h2{margin-bottom:26px}.area p{max-width:470px}.faq{max-width:1100px;margin:auto}.faq h2{margin-bottom:40px}.faq details{border-bottom:1px solid var(--line)}.faq summary{list-style:none;padding:24px 0;display:flex;justify-content:space-between;gap:24px;font-size:20px}.faq details p{padding:0 0 24px}.quote{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.25fr;gap:8vw}.quote h2{margin-bottom:28px}.quote-note{font-size:15px;margin-top:30px!important}.quote>div:first-child a,.footer-contact a{text-decoration:underline;text-underline-offset:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.quote label{display:block;font-size:15px;font-weight:500;margin-bottom:22px}.form-grid label{margin-bottom:0}.quote input:not([type=checkbox]),.quote select,.quote textarea{display:block;width:100%;border:1px solid var(--muted);padding:13px 14px;background:var(--forest);color:var(--white);border-radius:0;margin-top:8px;font-size:17px}.quote select option{color:#123f34;background:#f5faf7}.quote input:focus,.quote textarea:focus{background:var(--panel)}.quote textarea{resize:vertical}.form-grid+label{margin-top:22px;margin-bottom:8px}.helper{font-size:13px;margin-bottom:24px!important}.quote .consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;font-weight:400}.consent input{accent-color:var(--muted);width:20px;height:20px;margin-top:3px;flex:none}.consent a{text-decoration:underline}.send-request{width:100%;border:0;padding:18px 24px;background:var(--white);color:var(--forest);font-weight:600;display:flex;justify-content:space-between}.send-request:disabled{opacity:.6}.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.form-message{border:1px solid var(--muted);padding:18px;margin-bottom:24px}.form-message.error{border-color:#f3b6b6}.privacy{padding-top:0;padding-bottom:45px}.privacy summary{font-size:14px}.privacy p{font-size:14px;margin-top:20px}.dugan footer{border-top:1px solid var(--line);padding:45px 6vw;display:flex;align-items:center;justify-content:space-between;gap:30px}.dugan footer p{font-size:14px}.footer-contact{display:flex;flex-direction:column;font-size:14px}.back-top{width:48px;height:48px;border:1px solid var(--muted);border-radius:50%;display:grid;place-items:center;font-size:25px}
@media(max-width:900px){.site-header nav{gap:15px}.phone-link{display:none}.section{padding:75px 6vw}.about,.quote{gap:6vw}.service-intro{display:none}.service-body{margin-left:0}.dugan footer{flex-wrap:wrap}}
@media(max-width:700px){.site-header{height:72px}.menu-toggle{display:block;background:none;color:var(--white);border:1px solid var(--muted);padding:7px 13px}.site-header nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--forest);padding:24px 6vw;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:12px}.site-header nav.open .phone-link{display:block}.scroll-hero{height:160dvh}.hero-shade{background:linear-gradient(0deg,var(--forest),rgba(18,63,52,.82),rgba(18,63,52,.25))}.hero-copy{padding:120px 6vw 55px;position:absolute;bottom:0}.hero-copy h1{font-size:clamp(43px,10vw,62px)}.hero-copy>p:not(.location){font-size:16px}.location{font-size:10px}.section{padding:65px 6vw}.about,.quote{grid-template-columns:1fr;gap:38px}.service summary{font-size:24px;padding:25px 0;gap:14px}.service summary>img{width:40px;height:40px}.form-grid{grid-template-columns:1fr}.area{min-height:500px}.faq summary{font-size:18px}.privacy{padding-top:0}.dugan footer{display:grid;grid-template-columns:1fr auto}.dugan footer .brand{grid-column:1/-1}.back-top{grid-column:2;grid-row:2/4}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-hero{height:100dvh}.hero-video{display:none}.dugan *,.dugan *:before,.dugan *:after{animation:none!important;transition:none!important}}
