@import "https://fonts.googleapis.com/css2?family=Archivo:wght@500;700;800;900&family=Public+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primer:#f2f0ea;--paper:#fff;--ink:#22271f;--ink-60:#5b6055;--ink-35:#9da096;--line:#22271f24;--spruce:#24402f;--spruce-deep:#182b20;--brass:#a0782f;--chalk:#c7502f;--display:"Archivo", sans-serif;--body:"Public Sans", sans-serif;--mono:"IBM Plex Mono", monospace;--r:3px;--maxw:1120px}html{scroll-behavior:smooth}body{font-family:var(--body);background:var(--primer);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;font-weight:400;line-height:1.65}::selection{background:var(--spruce);color:#fff}.mono{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.chalkline{width:100%;height:7px;margin:.9rem 0 .4rem;display:block}.chalkline path{stroke:var(--chalk);stroke-width:2.5px;fill:none;stroke-linecap:round}.chalkline .dust{stroke-width:1px;opacity:.35}.ticks{background-image:repeating-linear-gradient(to right, var(--line) 0, var(--line) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(to right, var(--line) 0, var(--line) 1px, transparent 1px, transparent 60px);background-position:0 100%,0 100%;background-repeat:repeat-x;background-size:auto 7px,auto 14px;height:14px}.ticks--light{background-image:repeating-linear-gradient(90deg,#ffffff38 0 1px,#0000 1px 12px),repeating-linear-gradient(90deg,#ffffff38 0 1px,#0000 1px 60px)}.utility-bar{background:var(--ink);color:#ffffffbf;height:32px;font-family:var(--mono);letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 1.5rem;font-size:.68rem;display:flex}.utility-bar a{color:inherit;text-decoration:none}.utility-bar a:hover{color:#fff}.utility-bar .ub-right{gap:1.5rem;display:flex}@media (width<=640px){.utility-bar .ub-hide-sm{display:none}}.nav{background:var(--paper);border-bottom:1px solid var(--line);z-index:100;position:sticky;top:0}.nav-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;gap:1rem;height:68px;margin:0 auto;padding:0 1.5rem;display:flex}.wordmark{color:var(--ink);line-height:1;text-decoration:none}.wordmark .wm-top{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;font-size:1.05rem;font-weight:900}.wordmark .wm-top em{color:var(--spruce);font-style:normal}.wordmark .wm-sub{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-60);margin-top:3px;font-size:.58rem;display:block}.nav-links{align-items:center;gap:.15rem;list-style:none;display:flex}.nav-links a{font-family:var(--body);color:var(--ink-60);border-radius:var(--r);border-bottom:2px solid #0000;padding:8px 12px;font-size:.82rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:block}.nav-links a:hover{color:var(--ink)}.nav-links a.active{color:var(--ink);border-bottom-color:var(--chalk)}.nav-cta{background:var(--spruce);margin-left:.5rem;color:#fff!important;border-bottom:none!important;padding:10px 16px!important}.nav-cta:hover{background:var(--spruce-deep)}.mobile-btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:var(--r);color:var(--ink);cursor:pointer;background:0 0;padding:8px 12px;font-size:.7rem;display:none}.mobile-menu{background:var(--paper);border-bottom:1px solid var(--line);z-index:99;flex-direction:column;gap:2px;padding:.75rem 1rem 1rem;display:flex;position:sticky;top:68px}.mobile-menu a{color:var(--ink-60);border-radius:var(--r);padding:11px 12px;font-size:.95rem;font-weight:500;text-decoration:none}.mobile-menu a.active{color:var(--ink);background:var(--primer)}.mobile-menu .mm-cta{background:var(--spruce);color:#fff;text-align:center;margin-top:8px;font-weight:600}@media (width<=920px){.nav-links{display:none}.mobile-btn{display:block}}.btn{font-family:var(--body);border-radius:var(--r);cursor:pointer;border:1px solid #0000;padding:13px 26px;font-size:.88rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .12s;display:inline-block}.btn:active{transform:translateY(1px)}.btn-solid{background:var(--spruce);color:#fff}.btn-solid:hover{background:var(--spruce-deep)}.btn-ghost{color:var(--ink);border-color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--ink);color:var(--primer)}.btn-ghost--light{color:#fff;border-color:#ffffff8c}.btn-ghost--light:hover{color:var(--ink);background:#fff;border-color:#fff}.hero{background:var(--spruce-deep);color:#fff;position:relative;overflow:hidden}.hero-inner{max-width:var(--maxw);z-index:1;margin:0 auto;padding:5.5rem 1.5rem 4.5rem;position:relative}.hero-spec{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c;flex-wrap:wrap;gap:.4rem 1.4rem;margin-bottom:2rem;font-size:.7rem;display:flex}.hero-spec .brass{color:var(--brass)}.hero h1{font-family:var(--display);letter-spacing:-.015em;text-transform:uppercase;max-width:14ch;font-size:clamp(2.5rem,7vw,4.6rem);font-weight:900;line-height:.98}.hero h1 .thin{color:#ffffff8c;font-weight:500}.hero .chalkline{max-width:560px;margin-top:1.4rem}.hero-sub{color:#ffffffb8;max-width:46ch;margin:1.2rem 0 2.4rem;font-size:1.02rem;font-weight:300}.hero-btns{flex-wrap:wrap;gap:12px;display:flex}.hero-grain{pointer-events:none;background-image:repeating-linear-gradient(115deg,#ffffff06 0 1px,#0000 1px 9px);position:absolute;inset:0}.trust{background:var(--paper);border-bottom:1px solid var(--line)}.trust-inner{max-width:var(--maxw);flex-wrap:wrap;margin:0 auto;padding:0 1.5rem;display:flex}.trust-item{border-left:1px solid var(--line);flex-direction:column;flex:160px;gap:2px;padding:1.1rem 1rem;display:flex}.trust-item:last-child{border-right:1px solid var(--line)}.trust-num{font-family:var(--display);font-size:1.35rem;font-weight:800;line-height:1}.trust-lbl{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);font-size:.62rem}.section{max-width:var(--maxw);margin:0 auto;padding:4.5rem 1.5rem}.section--flush{padding-top:3.5rem;padding-bottom:3.5rem}.band{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.band--ink{background:var(--ink);color:#fff;border:none}.sec-head{max-width:640px;margin-bottom:2.4rem}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:.6rem;font-size:.68rem;display:block}.sec-title{font-family:var(--display);letter-spacing:-.01em;text-transform:uppercase;font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:800;line-height:1.05}.sec-sub{color:var(--ink-60);margin-top:.8rem;font-size:.95rem}.page-banner{background:var(--spruce-deep);color:#fff}.page-banner-inner{max-width:var(--maxw);margin:0 auto;padding:3.4rem 1.5rem 2.8rem}.page-banner h2{font-family:var(--display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.9rem,4.5vw,3rem);font-weight:900;line-height:1}.page-banner .chalkline{max-width:380px}.page-banner p{color:#ffffffa6;max-width:56ch;font-size:.95rem;font-weight:300}.services-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.service-card{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.6rem 1.5rem 1.5rem;transition:background .15s;position:relative}.service-card:hover{background:var(--primer)}.service-card:hover .service-name:after{width:34px}.service-tag{font-family:var(--mono);letter-spacing:.14em;color:var(--ink-35);margin-bottom:.9rem;font-size:.62rem;display:block}.service-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;margin-bottom:.55rem;font-size:1.02rem;font-weight:700}.service-name:after{content:"";background:var(--chalk);width:22px;height:3px;margin-top:.55rem;transition:width .2s;display:block}.service-desc{color:var(--ink-60);font-size:.86rem;line-height:1.6}.project-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}@media (width<=720px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=460px){.project-grid{grid-template-columns:1fr}}.project-thumb{aspect-ratio:4/3;background:var(--paper);cursor:pointer;position:relative;overflow:hidden}.project-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.project-thumb:hover img{transform:scale(1.03)}.project-fill{width:100%;height:100%;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-35);background:linear-gradient(135deg, transparent 49.6%, var(--line) 49.6%, var(--line) 50.4%, transparent 50.4%), linear-gradient(45deg, transparent 49.6%, var(--line) 49.6%, var(--line) 50.4%, transparent 50.4%);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:.62rem;display:flex}.project-label{background:var(--ink);color:#fff;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;font-size:.64rem;position:absolute;bottom:0;left:0;right:0}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:1.75rem;display:flex}.filter-btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);color:var(--ink-60);cursor:pointer;padding:8px 16px;font-size:.68rem;transition:all .13s}.filter-btn:hover{border-color:var(--ink);color:var(--ink)}.filter-btn.active{background:var(--ink);border-color:var(--ink);color:#fff}.testimonial-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}.testimonial-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;padding:1.5rem 1.5rem 1.25rem;display:flex}.stars{color:var(--brass);letter-spacing:3px;margin-bottom:.8rem;font-size:.78rem}.testimonial-text{color:var(--ink);flex:1;font-size:.92rem;line-height:1.65}.testimonial-meta{border-top:1px solid var(--line);margin-top:1.1rem;padding-top:.9rem}.testimonial-author{font-size:.85rem;font-weight:600}.testimonial-location{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-60);margin-top:2px;font-size:.64rem}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=520px){.form-row{grid-template-columns:1fr}}.form-group{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.form-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);font-size:.64rem}.form-input{font-family:var(--body);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);width:100%;padding:11px 13px;font-size:.92rem;transition:border-color .15s}.form-input:focus{border-color:var(--spruce);outline:none}.form-input::placeholder{color:var(--ink-35)}.faq-list{border-top:1px solid var(--line);max-width:760px;margin:0 auto}.faq-item{border-bottom:1px solid var(--line);background:0 0}.faq-question{text-align:left;cursor:pointer;width:100%;font-family:var(--body);color:var(--ink);background:0 0;border:none;align-items:baseline;gap:1rem;padding:1.15rem .25rem;font-size:.98rem;font-weight:600;display:flex}.faq-question:hover{color:var(--spruce)}.faq-q-index{font-family:var(--mono);color:var(--ink-35);flex-shrink:0;width:2rem;font-size:.66rem}.faq-arrow{color:var(--ink-35);flex-shrink:0;margin-left:auto;font-size:.7rem;transition:transform .2s}.faq-item.open .faq-arrow{transform:rotate(180deg)}.faq-answer{max-height:0;color:var(--ink-60);padding:0 .25rem 0 3.25rem;font-size:.9rem;line-height:1.7;transition:max-height .28s,padding .2s;overflow:hidden}.faq-item.open .faq-answer{max-height:220px;padding-bottom:1.2rem}.contact-grid{grid-template-columns:1fr 1.15fr;gap:3rem;max-width:940px;margin:0 auto;display:grid}@media (width<=760px){.contact-grid{grid-template-columns:1fr}}.contact-info-block{flex-direction:column;display:flex}.contact-row{border-bottom:1px solid var(--line);padding:1.1rem 0}.contact-row:first-child{border-top:1px solid var(--line)}.contact-info-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-bottom:4px;font-size:.62rem}.contact-info-text{font-size:.95rem;line-height:1.6}.contact-info-text a{color:inherit;text-decoration:none}.contact-info-text a:hover{color:var(--spruce)}.map-placeholder{border:1px dashed var(--ink-35);border-radius:var(--r);height:170px;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-35);justify-content:center;align-items:center;margin-top:1.5rem;font-size:.66rem;display:flex}.about-grid{grid-template-columns:1fr 1.1fr;align-items:start;gap:3rem;display:grid}@media (width<=760px){.about-grid{grid-template-columns:1fr}}.about-visual{aspect-ratio:4/3;background:var(--paper);border:1px dashed var(--ink-35);border-radius:var(--r);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-35);justify-content:center;align-items:center;font-size:.66rem;display:flex}.about-text p{color:var(--ink-60);margin-bottom:1.05rem;font-size:.96rem;line-height:1.75}.about-text p strong{color:var(--ink);font-weight:600}.stat-row{border:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:1.6rem;display:grid}.stat-box{background:var(--paper);text-align:center;padding:1.1rem .5rem}.stat-box+.stat-box{border-left:1px solid var(--line)}.stat-num{font-family:var(--display);font-size:1.6rem;font-weight:800;line-height:1}.stat-lbl{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60);margin-top:5px;font-size:.58rem}.schedule-wrap{max-width:680px;margin:0 auto}.sched-step{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);align-items:center;gap:.8rem;margin:1.8rem 0 1rem;font-size:.66rem;display:flex}.sched-step:after{content:"";background:var(--line);flex:1;height:1px}.sched-step:first-child{margin-top:0}.calendar-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem}.cal-month-nav{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.cal-nav-btn{border:1px solid var(--line);border-radius:var(--r);width:34px;height:34px;color:var(--ink-60);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:1rem;transition:all .12s;display:flex}.cal-nav-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.cal-nav-btn:disabled{opacity:.3;cursor:not-allowed}.cal-month-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:500}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-header{text-align:center;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-35);padding:4px 0 8px;font-size:.6rem}.cal-day{aspect-ratio:1;font-family:var(--mono);border-radius:var(--r);color:var(--ink-35);cursor:default;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:.8rem;transition:all .12s;display:flex}.cal-day.available{color:var(--ink);cursor:pointer;border-color:var(--line)}.cal-day.available:hover{border-color:var(--spruce);color:var(--spruce)}.cal-day.selected{background:var(--spruce);border-color:var(--spruce);color:#fff}.cal-day.today{border-color:var(--brass)}.cal-day.past{opacity:.35}.cal-day.empty{border:none}.cal-legend{border-top:1px solid var(--line);justify-content:center;gap:1.4rem;margin-top:1.1rem;padding-top:1rem;display:flex}.cal-legend-item{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);align-items:center;gap:6px;font-size:.6rem;display:flex}.cal-legend-dot{border-radius:2px;flex-shrink:0;width:10px;height:10px}.timeslot-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin-top:14px;padding:1.4rem}.timeslot-title{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-size:.7rem}.timeslots{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (width<=460px){.timeslots{grid-template-columns:repeat(3,1fr)}}.timeslot{font-family:var(--mono);text-align:center;border:1px solid var(--line);border-radius:var(--r);color:var(--ink-60);cursor:pointer;background:0 0;padding:10px 4px;font-size:.72rem;transition:all .12s}.timeslot:hover{border-color:var(--spruce);color:var(--spruce)}.timeslot.selected{background:var(--spruce);border-color:var(--spruce);color:#fff}.timeslot.booked{opacity:.4;cursor:not-allowed;text-decoration:line-through}.confirmation-box{border:1px solid var(--spruce);border-left:4px solid var(--spruce);background:var(--paper);border-radius:var(--r);margin-top:1.25rem;padding:1.3rem 1.4rem}.conf-title{font-family:var(--display);text-transform:uppercase;color:var(--spruce);margin-bottom:.6rem;font-size:.95rem;font-weight:700}.conf-detail{color:var(--ink-60);font-size:.9rem;line-height:1.8}.conf-detail strong{color:var(--ink);font-weight:600}.cta-band{background:var(--spruce-deep);color:#fff}.cta-band-inner{max-width:var(--maxw);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin:0 auto;padding:4rem 1.5rem;display:flex}.cta-band h3{font-family:var(--display);text-transform:uppercase;font-size:clamp(1.4rem,3vw,2rem);font-weight:800;line-height:1.1}.cta-band p{color:#fff9;max-width:44ch;margin-top:.5rem;font-size:.92rem;font-weight:300}footer{background:var(--ink);color:#ffffff8c}.footer-inner{max-width:var(--maxw);grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;margin:0 auto;padding:3rem 1.5rem 2rem;display:grid}@media (width<=720px){.footer-inner{grid-template-columns:1fr}}.footer-brand .wm-top{color:#fff}.footer-brand .wm-sub{color:#fff6}.footer-brand p{margin-top:1rem;font-size:.82rem;font-weight:300;line-height:1.8}.footer-col h4{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:.9rem;font-size:.64rem;font-weight:500}.footer-col a{color:#ffffff8c;padding:3px 0;font-size:.84rem;font-weight:300;text-decoration:none;display:block}.footer-col a:hover{color:#fff}.footer-bottom{max-width:var(--maxw);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#ffffff59;border-top:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin:0 auto;padding:1.25rem 1.5rem 2rem;font-size:.62rem;display:flex}:focus-visible{outline:2px solid var(--chalk);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
