.header{position:sticky;top:0;z-index:100;background:#f1efe8f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}.header-bar{display:flex;align-items:center;gap:2rem;height:var(--header-h)}.brand{display:flex;align-items:center;gap:.6rem;margin-right:auto;text-decoration:none}.brand-logo{width:36px;height:36px;object-fit:contain}.brand-name{font-family:var(--font-display);font-size:1.4rem;font-weight:700}.nav{display:flex;gap:1.75rem}.nav-link{position:relative;padding:.25rem 0;font-weight:600;text-decoration:none}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--moss);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}.nav-link:hover:after,.nav-link:focus-visible:after{transform:scaleX(1)}.header-call{min-height:2.75rem;padding:0 1.1rem}.menu-btn{display:none;position:relative;width:44px;height:44px;border:0;background:none}.menu-btn-line{position:absolute;left:10px;width:24px;height:2.5px;background:var(--walnut);transition:transform .3s var(--ease-out),top .3s var(--ease-out)}.menu-btn-line:first-child{top:16px}.menu-btn-line:last-child{top:25px}.menu-btn-open .menu-btn-line:first-child{top:21px;transform:rotate(45deg)}.menu-btn-open .menu-btn-line:last-child{top:21px;transform:rotate(-45deg)}.scroll-gauge{--progress: 0%;position:relative;height:4px}.scroll-gauge:before{content:"";position:absolute;inset:0;background-color:#fff6e2;background-image:linear-gradient(90deg,var(--walnut) 0 1px,transparent 1px),url(/assets/wood-oak.webp);background-size:10px 50%,520px auto;background-repeat:repeat-x,repeat;background-blend-mode:normal,multiply;clip-path:inset(0 calc(100% - var(--progress)) 0 0)}@media(max-width:860px){.header-bar{gap:.5rem}.nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:.5rem var(--gutter) 1.25rem;background:var(--paper);border-bottom:1px solid var(--line);visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s var(--ease-out),visibility 0s .25s}.nav-open{visibility:visible;opacity:1;transform:none;transition:opacity .25s,transform .25s var(--ease-out),visibility 0s}.nav-link{padding:.9rem 0;font-family:var(--font-display);font-size:1.4rem;border-bottom:1px solid var(--line)}.nav-link:after{display:none}.menu-btn{display:block;order:2}.header-call{width:44px;min-height:44px;padding:0}.header-call-number{display:none}}.rule-band{--rule-h: 40px;position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:1.75rem var(--gutter) 1.5rem;pointer-events:none}.rule{--n: 6;height:var(--rule-h);filter:drop-shadow(0 3px 2px rgba(42,33,25,.28))}.rule-seg{position:relative;width:calc(100% / var(--n));height:var(--rule-h);border-radius:2px;background-color:#fff6e2;background-image:linear-gradient(90deg,var(--walnut) 0 1.5px,transparent 1.5px),linear-gradient(90deg,var(--walnut) 0 1px,transparent 1px),url(/assets/wood-oak.webp);background-size:25% 42%,5% 24%,520px auto;background-repeat:repeat-x,repeat-x,repeat;background-position:0 0,0 0,calc(var(--i) * -137px) calc(var(--i) * -23px);background-blend-mode:normal,normal,multiply;box-shadow:inset 0 -2px #2a21192e,inset 0 1px #ffffff59}.rule-seg .rule-seg{position:absolute;top:0;left:100%;width:100%;transform-origin:0 50%;animation:rule-unfold .6s var(--ease-out) both;animation-delay:calc(.45s + var(--i) * .14s)}.rule>.rule-seg:before,.rule-seg:after{position:absolute;top:-1px;bottom:-1px;width:7px}.rule>.rule-seg:before{content:"";left:-3px;border-radius:3px 1px 1px 3px;background:linear-gradient(90deg,#7a5a1a,#e9cd85 45%,#9c7424)}.rule-seg:after{right:-3px;border-radius:1px 3px 3px 1px;background:linear-gradient(90deg,#9c7424,#e9cd85 55%,#7a5a1a)}.rule-num{position:absolute;bottom:4px;z-index:1;font-family:var(--font-body);font-size:.8rem;font-weight:700;line-height:1;color:var(--walnut);font-variant-numeric:lining-nums tabular-nums}.rule-num-mid{left:50%;transform:translate(-50%)}.rule-num-end{right:12px}.rule-num-red{padding:2px 4px;border-radius:2px;background:var(--rule-red);color:var(--white)}.rule-hinge{position:absolute;top:50%;right:0;z-index:2;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f3dc9a,#b88a2c 60%,#7a5a1a);transform:translate(50%,-50%)}.rule-seg[data-i="5"]>.rule-hinge{display:none}.rule-seg[data-i="5"]:after{content:""}@keyframes rule-unfold{0%{transform:rotate(calc(180deg * var(--dir)))}80%{transform:rotate(calc(-5deg * var(--dir)))}to{transform:rotate(0)}}@media(max-width:900px){.rule{--n: 4}.rule-seg[data-i="4"]{display:none}.rule-seg[data-i="3"]>.rule-hinge{display:none}.rule-seg[data-i="3"]:after{content:""}}@media(max-width:560px){.rule-band{--rule-h: 34px;padding:1.25rem var(--gutter)}.rule{--n: 3}.rule-seg[data-i="3"]{display:none}.rule-seg[data-i="2"]>.rule-hinge{display:none}.rule-seg[data-i="2"]:after{content:""}.rule-num{font-size:.72rem}}.job-show{--mat: 10px;--photo-w: 440px;width:100%;max-width:calc(var(--photo-w) + 2 * var(--mat));justify-self:end;animation:print-settle 1.1s var(--ease-out) .2s both}.job-print{padding:var(--mat) var(--mat) 0;border-radius:6px;background:var(--white);box-shadow:0 1px 2px #2a211914,0 18px 40px -18px #2a211973}.job-viewport{position:relative;aspect-ratio:4 / 5;overflow:hidden;border-radius:3px;background:var(--paper-deep);touch-action:pan-y;-webkit-user-select:none;user-select:none}.job-slide{position:absolute;inset:0;opacity:0}.job-slide.is-previous{z-index:1;opacity:1}.job-slide.is-shown{z-index:2;opacity:1;transition:opacity var(--fade-ms) ease-in-out}.job-slide picture{display:contents}.job-slide img{width:100%;height:100%;object-fit:cover;transform-origin:35% 40%}.job-slide:nth-child(2n) img{transform-origin:65% 60%}.job-slide.is-active img,.job-slide.is-previous img{animation:photo-drift var(--drift-ms) linear forwards}.job-show.is-still .job-slide img{animation-play-state:paused}.job-bar{display:flex;align-items:center;gap:.35rem;padding:.7rem 0 .35rem}.job-caption{display:flex;flex:1;flex-direction:column;min-width:0;padding-left:.4rem;font-family:var(--font-display);line-height:1.15}.job-count{font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.08em;color:var(--walnut-soft)}.job-caption-text{font-size:1.2rem;font-weight:700;color:var(--walnut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:caption-in .6s var(--ease-out) both}.job-btn{display:inline-grid;flex:none;place-items:center;width:2.5rem;height:2.5rem;border:1.5px solid var(--line);border-radius:50%;background:transparent;color:var(--walnut);transition:background-color .2s,border-color .2s,color .2s}.job-btn:hover{border-color:var(--walnut);background:var(--walnut);color:var(--paper)}.job-ticks{display:flex;justify-content:space-between;margin:0 calc(-1 * var(--mat));padding:0 calc(var(--mat) + .25rem);border-top:1px solid var(--paper-deep)}.job-tick{position:relative;width:24px;height:28px;border:0;border-radius:3px;background:none}.job-tick:before{content:"";position:absolute;top:0;left:50%;width:2px;height:8px;margin-left:-1px;background:var(--walnut-soft);transition:height .3s var(--ease-out),background-color .3s}.job-tick:hover:before{height:13px;background:var(--walnut)}.job-tick[aria-current=true]:before{height:17px;background:var(--rule-red)}.job-tick:focus-visible{outline-offset:-1px}@keyframes photo-drift{0%{transform:none}to{transform:scale(1.045)}}@keyframes caption-in{0%{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:none}}@keyframes print-settle{0%{transform:translateY(14px)}to{transform:none}}@media(max-width:900px){.job-show{justify-self:center}}@media(prefers-reduced-motion:reduce){.job-show,.job-slide.is-active img,.job-slide.is-previous img,.job-caption-text{animation:none}}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,4.5rem);align-items:end;max-width:var(--container);margin:0 auto;padding:clamp(2.5rem,6vw,5rem) var(--gutter) 0}.hero-title{font-size:min(var(--fs-h1),15vw);line-height:.98;margin-bottom:1.5rem}.hero-line{display:block;overflow:hidden;white-space:nowrap;padding-bottom:.06em}.hero-line-inner{display:block;animation:line-rise .9s var(--ease-out) both;animation-delay:calc(.08s + var(--i) * .11s)}.hero-lead{max-width:32rem;text-wrap:balance;margin-bottom:2rem;font-size:var(--fs-lead);line-height:1.55;animation:fade-in .8s ease .55s both}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;animation:fade-in .8s ease .7s both}@keyframes line-rise{0%{transform:translateY(105%)}to{transform:none}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:480px){.hero-actions .btn{flex:1 1 100%}}.services{padding:clamp(3rem,6vw,4.5rem) 0 clamp(4rem,8vw,6.5rem)}.services-grid{display:grid;grid-template-columns:minmax(0,20rem) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start}.services-intro{position:sticky;top:calc(var(--header-h) + 2.5rem)}.services-intro h2{margin-bottom:1rem}.services-ask{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.services-ask a{font-weight:700;white-space:nowrap;color:var(--walnut);text-underline-offset:3px}.service-list{list-style:none;border-top:1px solid var(--line)}.service{position:relative;border-bottom:1px solid var(--line)}.service:before{content:"";position:absolute;top:.75rem;bottom:.75rem;left:-.9rem;width:5px;border-radius:3px;background:#fff6e2 url(/assets/wood-oak.webp) center / 520px auto;background-blend-mode:multiply;transform:scaleY(0);transition:transform .35s var(--ease-out)}.service-open:before{transform:none}.service-heading{font:inherit;letter-spacing:normal}.service-toggle{display:grid;grid-template-columns:minmax(0,1fr) 2.5rem;column-gap:1.5rem;row-gap:.3rem;width:100%;padding:1.5rem 1rem;border:0;border-radius:10px;background:none;text-align:left;transition:background-color .2s}.service-toggle:hover{background:var(--paper-deep)}.service-title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:700;line-height:1.15}.service-summary{grid-row:2;color:var(--walnut-soft)}.service-icon{grid-column:2;grid-row:1 / span 2;align-self:center;position:relative;width:2.5rem;height:2.5rem;border:1.5px solid var(--walnut);border-radius:50%;transition:transform .35s var(--ease-out),background-color .2s,border-color .2s}.service-icon:before,.service-icon:after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2.5px;background:var(--walnut);transform:translate(-50%,-50%)}.service-icon:after{transform:translate(-50%,-50%) rotate(90deg)}.service-open .service-icon{transform:rotate(135deg);border-color:var(--moss);background:var(--moss)}.service-open .service-icon:before,.service-open .service-icon:after{background:var(--paper)}.service-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease-out)}.service-open .service-panel{grid-template-rows:1fr}.service-panel-inner{min-height:0;overflow:hidden;padding:0 1rem;max-width:44rem}.service-panel-inner>:first-child{margin-top:.25rem}.service-panel-inner p+p{margin-top:.75rem}.service-cta{margin:1.5rem 0 1.75rem}@media(max-width:860px){.services-grid{grid-template-columns:1fr}.services-intro{position:static}.service-toggle,.service-panel-inner{padding-inline:0}}.process{padding:clamp(4rem,8vw,6rem) 0;background:linear-gradient(#3f4d34ed,#3f4d34ed),url(/assets/wood-planks.webp) center / 700px auto repeat;color:var(--paper)}.process p{color:#f1efe8cc}.process-title{margin-bottom:clamp(2.5rem,5vw,3.5rem)}.steps{--dot: 3rem;--gap: 2rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);list-style:none}.step{position:relative;opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .6s var(--ease-out);transition-delay:calc(.15s + var(--i) * .22s)}.steps-in .step{opacity:1;transform:none}.step:not(:last-child):after{content:"";position:absolute;top:calc(var(--dot) / 2 - 1px);left:calc(var(--dot) + .5rem);right:calc(var(--gap) * -1 + .5rem);height:2px;background:repeating-linear-gradient(90deg,var(--yellow) 0 10px,transparent 10px 16px);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out);transition-delay:calc(.4s + var(--i) * .22s)}.step-num{display:grid;place-items:center;width:var(--dot);height:var(--dot);margin-bottom:1.25rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f6e3a8,#d2a646 55%,#8e6a22);box-shadow:inset 0 -2px 3px #2a211959,0 2px 4px #00000040;color:var(--walnut);font-family:var(--font-display);font-size:1.4rem;font-weight:700}.step-title{margin-bottom:.5rem;font-size:1.45rem}@media(max-width:860px){.steps{--gap: 2.25rem;grid-template-columns:1fr}.step{padding-left:calc(var(--dot) + 1.25rem)}.step-num{position:absolute;top:-.35rem;left:0;margin:0}.step:not(:last-child):after{top:calc(var(--dot) + .15rem);bottom:calc(var(--gap) * -1 - .1rem);left:calc(var(--dot) / 2 - 1px);right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--yellow) 0 10px,transparent 10px 16px);transform:scaleY(0);transform-origin:top}}.steps-in .step:not(:last-child):after{transform:none}@media(prefers-reduced-motion:reduce){.step,.step:not(:last-child):after{opacity:1;transform:none}}.about{padding:clamp(4rem,9vw,7.5rem) 0}.about-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(2.5rem,7vw,6rem);align-items:start}.about-text h2{margin-bottom:1.5rem}.about-text p{max-width:36rem}.about-lead{margin-bottom:1.25rem;font-size:var(--fs-lead);line-height:1.45;color:var(--walnut)}.facts{position:relative;padding:.75rem 1.75rem .5rem;border-radius:var(--radius);background-color:#f7f2e6;background-image:linear-gradient(#f7f2e6b8,#f7f2e6b8),url(/assets/wood-oak.webp);background-size:auto,900px auto;box-shadow:0 14px 30px -18px #2a211980}.facts:before{content:"";position:absolute;top:10px;left:50%;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f3dc9a,#b88a2c 60%,#7a5a1a);box-shadow:0 1px 2px #2a211966;transform:translate(-50%)}.fact:last-child{border-bottom:0}.fact{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.fact dt{font-weight:700}.fact dd{color:var(--walnut)}@media(max-width:860px){.about-grid{grid-template-columns:1fr}}@media(max-width:420px){.fact{grid-template-columns:1fr;gap:.2rem}}.contact{padding:clamp(4rem,9vw,7rem) 0;background:linear-gradient(#2219119e,#221911b8),url(/assets/wood-planks.webp) center / 700px auto repeat;color:var(--paper)}.contact-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,5rem);align-items:end}.contact-title{margin-bottom:.5rem}.contact-phone{display:inline-block;margin-bottom:2rem;font-family:var(--font-display);font-size:clamp(2.6rem,9vw,6rem);font-weight:700;line-height:1.05;white-space:nowrap;color:var(--yellow);text-decoration:none;font-variant-numeric:lining-nums tabular-nums;background:linear-gradient(var(--yellow),var(--yellow)) left bottom / 0 3px no-repeat;transition:background-size .35s var(--ease-out)}.contact-phone:hover{background-size:100% 3px}.contact .btn-primary:focus-visible,.contact-phone:focus-visible,.contact-details a:focus-visible{outline-color:var(--yellow)}.contact-address{font-style:normal}.contact-details{padding:1.5rem;border-radius:var(--radius);background:#f1efe814;border:1px solid rgba(241,239,232,.2)}.contact-details p{color:var(--paper)}.contact-company{margin-bottom:1rem;font-weight:700}.contact-line{display:flex;gap:.75rem;align-items:flex-start}.contact-line+.contact-line{margin-top:.75rem}.contact-line svg{flex-shrink:0;margin-top:.2rem;color:var(--yellow)}.contact-line a{text-underline-offset:3px}@media(max-width:860px){.contact-grid{grid-template-columns:1fr;align-items:start}}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0009;animation:overlay-in .25s ease both}.modal{position:relative;width:100%;max-width:520px;max-height:calc(100dvh - 2rem);overflow-y:auto;padding:2.25rem;border-radius:var(--radius);background:var(--paper);box-shadow:0 24px 60px #00000059;animation:modal-in .35s var(--ease-out) both}.modal-closing{animation:overlay-out .2s ease both}.modal-closing .modal{animation:modal-out .2s ease both}.modal-close{position:absolute;top:.9rem;right:.9rem;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:none;color:var(--walnut-soft);transition:background-color .2s,color .2s}.modal-close:hover{background:var(--paper-deep);color:var(--walnut)}.modal-title{margin-bottom:1.5rem;padding-right:2.5rem;font-size:1.75rem}.field{margin-bottom:1.1rem}.field label{display:block;margin-bottom:.4rem;font-size:.95rem;font-weight:600}.field-optional{font-weight:400;color:var(--walnut-soft)}.field input,.field select,.field textarea{width:100%;padding:.8rem .9rem;border:1.5px solid var(--field-border);border-radius:8px;background:var(--white);font:inherit;color:var(--walnut);transition:border-color .2s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--walnut);box-shadow:0 0 0 3px var(--yellow)}.field select{appearance:none;padding-right:2.5rem;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%232A2119' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 1rem center;cursor:pointer}.field textarea{min-height:100px;resize:vertical}.field-hint{margin:-.4rem 0 1.1rem;font-size:var(--fs-small);color:var(--walnut-soft)}.form-error-inline{font-weight:600;color:var(--rule-red)}.field input[aria-invalid=true]{border-color:var(--rule-red)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.recaptcha{display:flex;flex-direction:column;align-items:center}.form-error{margin:.5rem 0 1rem;font-size:var(--fs-small);font-weight:600;color:var(--rule-red);text-align:center}.modal-submit{width:100%}.modal-submit[aria-disabled=true]{opacity:.6;cursor:progress}.modal-success{padding:1rem 0 .5rem}.modal-success-title:focus{outline:none}.modal-done{margin-top:1.5rem}.modal-success-title{margin-bottom:.4rem;font-size:1.3rem;font-weight:700;color:var(--walnut)}@keyframes overlay-in{0%{opacity:0}}@keyframes overlay-out{to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(24px)}}@keyframes modal-out{to{opacity:0;transform:translateY(12px)}}@media(max-width:560px){.modal{padding:1.5rem 1.25rem}.field-hint{margin:-.4rem 0 1.1rem;font-size:var(--fs-small);color:var(--walnut-soft)}.form-error-inline{font-weight:600;color:var(--rule-red)}.field input[aria-invalid=true]{border-color:var(--rule-red)}.field-row{grid-template-columns:1fr;gap:0}}
