@font-face{font-family:MH Sans;src:url('/assets/mh-sans.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:MH Sans;src:url('/assets/mh-sans-bold.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:MH Serif;src:url('/assets/mh-serif.woff') format('woff');font-weight:400;font-display:swap}
:root{--paper:#f7f4ec;--ink:#1e2726;--muted:#59605c;--wood:#754726;--line:#d5d2c8;--gutter:clamp(1.25rem,5vw,5rem);--serif:'MH Serif',Georgia,serif;--sans:'MH Sans',Arial,sans-serif}
*{box-sizing:border-box}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0!important}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:1rem}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.5 var(--sans);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a,input,textarea,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--wood);outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;text-wrap:balance}h1,h2,h3,.contact-link{overflow-wrap:anywhere}h2{font:400 clamp(2rem,3.4vw,3rem)/1.1 var(--serif);letter-spacing:-.025em}h3{font:400 1.65rem/1.2 var(--serif)}address{font-style:normal}::selection{background:#dec29f;color:var(--ink)}.skip-link{position:absolute;top:1rem;left:1rem;z-index:10;padding:.75rem 1rem;background:var(--ink);color:white;transform:translateY(-200%)}.skip-link:focus{transform:none}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.35rem var(--gutter);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.8rem;flex:none}.brand img{width:60px;height:auto}.brand>span{font-weight:700;font-size:1.125rem;letter-spacing:.07em;line-height:1.1}.site-header nav{display:flex;flex-wrap:wrap;gap:2rem}.site-header nav a{padding:.5rem 0}.site-header nav a:hover{color:var(--wood)}.header-phone{font-size:1.0625rem;white-space:nowrap}
.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;max-width:1600px;margin-inline:auto}.hero-copy{padding:2.75rem 2rem 2.75rem var(--gutter);min-width:0}.eyebrow{font-size:.875rem;letter-spacing:.07em;color:var(--wood)}h1{font:400 clamp(3.5rem,6.1vw,6.15rem)/1 var(--serif);letter-spacing:-.035em;margin:1.2rem 0}h1>span{color:var(--wood)}.hero-intro{font-size:1.125rem;color:var(--muted)}.identity{margin-top:1.5rem}.person-name{font-size:1.4rem;margin-bottom:.2rem}.identity>p:not(.person-name){font-size:1rem;color:var(--muted)}.identity .hero-address{margin-top:.6rem}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.6rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.85rem 1.5rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:1rem;font-weight:400}.button:hover{background:var(--wood);border-color:var(--wood)}.button:disabled{opacity:.6;cursor:wait}.phone-link{font-size:1.125rem;padding:.65rem 0;border-bottom:1px solid var(--muted)}.hero-email{display:flex;flex-direction:column;align-items:flex-start;width:fit-content;max-width:100%;margin-top:1.3rem;padding:.4rem 0;color:var(--wood)}.hero-email>span{font-size:.875rem;line-height:1.4;color:var(--muted)}.hero-email strong{display:flex;align-items:center;gap:1.4rem;font-size:1.5rem;line-height:1.4;font-weight:400;border-bottom:1px solid currentColor}.hero-email:hover{color:var(--ink)}.hero-brand{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;background:#eae4d8;pointer-events:none}.hero-mark{width:86%;max-width:650px;height:auto;opacity:.12;filter:grayscale(1);transform:translateY(-1.5rem)}.hero-wordmark{position:absolute;left:clamp(2rem,5vw,5rem);bottom:clamp(2rem,5vw,5rem);font-size:clamp(1.3rem,2.4vw,2.25rem);font-weight:700;line-height:1.1;letter-spacing:.16em;color:var(--ink)}.hero-wordmark>span{display:block;font-size:.48em;font-weight:400;letter-spacing:.34em;margin-top:.65rem}
.section{padding:3.75rem var(--gutter);max-width:1600px;margin-inline:auto}.services{border-top:1px solid var(--line)}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:1.75rem}.services-grid article{padding-top:1rem;border-top:1px solid var(--line)}.services-grid h3{margin-bottom:.55rem}.services-grid p{color:var(--muted);font-size:1rem;max-width:29ch}.projects{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.8rem}.section-heading p{color:var(--muted);font-size:1rem}.comparisons-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.comparison-card,.detail-card{position:relative;min-width:0}.comparison-card h3,.detail-card h3{margin-bottom:.85rem}.comparison{position:relative;isolation:isolate;width:100%;aspect-ratio:4/5;overflow:hidden;background:#dedbd2;--position:50%}.comparison-layer{position:absolute;inset:0}.comparison-before{clip-path:inset(0 calc(100% - var(--position)) 0 0)}.photo-crop{position:relative;display:block;width:100%;aspect-ratio:var(--crop-ratio);overflow:hidden}.photo-crop img{position:absolute;display:block;max-width:none;width:var(--image-width);height:var(--image-height);left:var(--image-left);top:var(--image-top)}.comparison-label{position:absolute;top:.8rem;z-index:2;padding:.3rem .6rem;background:var(--ink);color:var(--paper);font-size:.875rem;line-height:1.4;max-width:calc(50% - 1rem);overflow-wrap:anywhere;pointer-events:none}.label-before{left:.8rem}.label-after{right:.8rem}.comparison-handle{position:absolute;z-index:3;top:0;bottom:0;left:var(--position);width:3px;transform:translateX(-50%);background:var(--paper);box-shadow:0 0 0 1px #1e272630;pointer-events:none}.comparison-handle>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:50px;height:50px;border:1px solid #1e27264d;border-radius:50%;background:var(--paper);color:var(--ink);font:400 1.6rem/1 var(--sans);box-shadow:0 2px 10px #0003}.comparison-range{position:absolute;inset:0;z-index:4;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.comparison:focus-within{outline:3px solid var(--wood);outline-offset:5px}.comparison:focus-within .comparison-handle>span{outline:3px solid var(--wood);outline-offset:2px}.image-expand,.photo-zoom{position:absolute;right:.75rem;bottom:.75rem;z-index:5;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #1e272640;border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #0002}.image-expand{cursor:zoom-in}.image-expand:hover,.photo-open:hover .photo-zoom{background:var(--ink);color:var(--paper)}.zoom-icon{display:block;pointer-events:none}.image-expand:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.roof-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.roof-photo{min-width:0}.photo-open{position:relative;display:block;width:100%;border:0;padding:0;background:#dedbd2;cursor:zoom-in}.photo-zoom{pointer-events:none}.roof-photo figcaption{font-size:.875rem;color:var(--muted);margin-top:.55rem}
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);background:var(--ink);color:var(--paper)}.contact-details{min-width:0}.contact-person{font-size:1.6rem;margin-top:1.75rem}.qualification{margin:.35rem 0 1.4rem;color:#e0c09b;font-size:1rem}.contact-details address{font-size:1rem;line-height:1.7;margin-bottom:1.6rem}.contact-link{display:block;width:fit-content;max-width:100%;margin:1rem 0;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.3}.contact-link>span{display:block;font-size:.875rem;color:#ccd2cd;margin-bottom:.25rem}.contact-link:hover{text-decoration:underline;text-underline-offset:.25rem}.contact-link.contact-email{margin-top:1.3rem;padding:.65rem 0;border-top:1px solid #61716b;border-bottom:1px solid #61716b;color:#f2d0a8;font-size:clamp(1.85rem,3.4vw,2.7rem)}.contact-email>.email-arrow{display:inline;font-size:.75em;margin-left:.5rem;color:inherit}.contact a:focus-visible{outline-color:#e0c09b}.contact-form-panel{min-width:0;background:var(--paper);color:var(--ink);padding:1.75rem 2rem}.contact-form-panel h3{font-size:1.85rem;margin-bottom:1.5rem}.field{margin-bottom:1rem}.field label{display:block;font-size:1rem;margin-bottom:.35rem}.field label>span{font-size:.875rem;color:var(--muted)}.field input,.field textarea{display:block;width:100%;min-width:0;min-height:46px;padding:.65rem .75rem;border:1px solid #8a9089;border-radius:0;background:#fff;color:var(--ink);font-size:1rem;line-height:1.45}.field textarea{resize:vertical}.field-hint{font-size:.875rem;color:var(--muted);margin-top:.25rem}.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.contact-form-panel .button{width:100%}.form-status:empty{display:none}.form-status{margin-top:1rem;padding:.8rem;border-left:3px solid var(--wood);font-size:1rem}.form-status.error{color:#a22213}.form-note{margin-top:.85rem;font-size:.875rem;line-height:1.45;color:var(--muted)}.site-footer{max-width:1600px;margin:auto;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem 2rem;padding:1.7rem var(--gutter);font-size:.875rem;color:var(--muted)}.privacy{max-width:55ch}.privacy summary{cursor:pointer;min-height:32px}.privacy>div{margin-top:.7rem;font-size:.875rem;line-height:1.6}.privacy p+p{margin-top:.6rem}.privacy a{text-decoration:underline}
.photo-viewing{overflow:hidden}.photo-dialog{position:fixed;inset:0;margin:auto;width:calc(100% - 2rem);max-width:1200px;min-width:0;height:calc(100dvh - 2rem);max-height:calc(100dvh - 2rem);padding:1rem 1.25rem;border:1px solid #61716b;background:var(--ink);color:var(--paper);overflow:hidden}.photo-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem}.photo-dialog::backdrop{background:#101514ed}.photo-dialog-top{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;min-width:0;font-size:1rem}.photo-dialog button{min-width:0;min-height:44px;border:1px solid #73807a;padding:.6rem .9rem;background:none;color:inherit;font:inherit}.photo-dialog button:hover{background:#35443d}.photo-dialog button:focus-visible{outline-color:#e0c09b;outline-offset:-3px}.photo-close{display:flex;align-items:center;gap:.6rem}.photo-close span{font-size:1.5rem;line-height:1}.photo-stage{display:grid;place-items:center;min-height:0;min-width:0;width:100%;height:100%;overflow:hidden}.viewer-content{max-width:100%;min-width:0;flex:none}.photo-controls{display:grid;grid-template-columns:44px auto 44px;align-items:center;justify-content:center;gap:1rem;min-width:0}.photo-controls>span{min-width:3rem;text-align:center}.photo-controls button,.photo-dialog .photo-close{width:44px;height:44px;padding:0;justify-content:center}.photo-controls button>span{font-size:1.4rem;line-height:1}.photo-controls button{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.2rem .65rem}.photo-controls>span{font-size:.875rem;white-space:nowrap}.photo-dialog .comparison:focus-within{outline-offset:-3px}
.admin-main{max-width:1050px;margin:auto;padding:2.5rem var(--gutter)}.admin-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.admin-tools{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.5rem 0}.admin-tools button,.inquiry-actions button{padding:.65rem 1rem;min-height:44px;border:1px solid var(--line);background:transparent;color:var(--ink)}.admin-tools button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.inquiry-list{display:grid;gap:1rem}.inquiry-card{border:1px solid var(--line);padding:1.35rem;background:#fff}.inquiry-card h2{font-size:1.6rem}.inquiry-meta{font-size:.875rem;color:var(--muted);margin:.35rem 0 .8rem}.inquiry-contact{font-size:1.125rem;text-decoration:underline;text-underline-offset:3px}.inquiry-card p{white-space:pre-wrap;overflow-wrap:anywhere}.inquiry-message{margin-top:.85rem}.inquiry-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.inquiry-actions .delete-button{margin-left:auto;color:#982817}.admin-state{padding:1.3rem 0;color:var(--muted)}
@media(min-width:1600px){.site-header,.site-footer{max-width:1600px;margin-inline:auto}}
@media(max-width:1000px){.site-header nav{gap:1.3rem}.hero-copy{padding-top:2.2rem;padding-bottom:2.2rem}h1{font-size:clamp(3rem,6.6vw,4.7rem)}.comparisons-grid,.roof-grid{gap:1rem}.comparison-label{font-size:.875rem;padding:.25rem .4rem;top:.6rem}.label-before{left:.4rem}.label-after{right:.4rem}.contact-form-panel{padding:1.5rem}}
@media(max-width:760px){.site-header{flex-wrap:wrap;gap:.8rem;padding-block:1rem}.brand img{width:48px}.brand>span{font-size:1rem}.site-header nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:.45rem}.header-phone{font-size:1rem}.hero{grid-template-columns:1fr}.hero-copy{padding:1.75rem var(--gutter) 2rem}.eyebrow{font-size:.875rem;letter-spacing:.025em}h1{font-size:clamp(3.1rem,10.5vw,4.8rem);margin:1rem 0}.hero-intro{font-size:1.0625rem}.identity{margin-top:1.2rem}.hero-actions{margin-top:1.2rem;gap:.75rem 1.25rem}.hero-brand{position:absolute;inset:0;z-index:-1;display:block;background:transparent}.hero-mark{position:absolute;top:2rem;right:-1.75rem;width:72%;max-width:390px;opacity:.055;transform:none}.hero-wordmark{display:none}.section{padding:2.75rem var(--gutter)}.services-grid{grid-template-columns:1fr;gap:1.15rem;margin-top:1.3rem}.services-grid h3{font-size:1.5rem;margin-bottom:.35rem}.services-grid p{max-width:none}.section-heading{gap:.6rem;margin-bottom:1.4rem}.comparisons-grid{grid-template-columns:1fr;gap:1.6rem;max-width:500px;margin:auto}.comparison-card h3,.detail-card h3{font-size:1.5rem}.comparison-label{top:.8rem;font-size:.875rem;padding:.3rem .6rem}.label-before{left:.8rem}.label-after{right:.8rem}.roof-grid{grid-template-columns:1fr;gap:1.5rem;max-width:500px;margin:1.6rem auto 0}.contact{grid-template-columns:1fr;gap:1.6rem}.contact-person{margin-top:1.4rem}.contact-link{font-size:1.65rem}.contact-form-panel{padding:1.35rem}.contact-form-panel h3{font-size:1.65rem}.site-footer{padding-block:1.4rem;gap:.65rem 1.5rem}.photo-dialog{width:calc(100% - 1rem);height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem);padding:.7rem}.photo-dialog[open]{gap:.75rem}.photo-dialog-top{font-size:.9375rem}.photo-dialog button{font-size:.875rem;padding:.6rem .65rem}.photo-controls{gap:.6rem}}
@media(max-width:360px){.hero-actions{align-items:stretch}.hero-actions .button{width:100%}.photo-dialog-top{gap:.4rem}.photo-close{gap:.4rem}.photo-controls button{gap:.2rem .4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep navigation within reach without obscuring anchored sections. */
html{scroll-padding-top:calc(var(--header-offset, 6rem) + 1rem);scrollbar-gutter:stable}
.site-header[data-navigation]{position:sticky;top:0;z-index:10;flex-wrap:wrap;column-gap:1.5rem;row-gap:.5rem;background:var(--paper)}
.site-header[data-navigation].header-flow{position:static}
.site-header nav a{display:inline-flex;align-items:center;min-height:44px;border-bottom:2px solid transparent;white-space:nowrap}
.site-header nav a[aria-current="location"]{border-bottom-color:var(--wood);color:var(--wood)}
.header-phone{display:inline-flex;align-items:center;min-height:44px}
.skip-link{z-index:20}
.skip-link:focus{position:fixed}
.image-expand,.photo-zoom{transition:color .15s ease,background-color .15s ease}
@media(max-width:760px){html{scroll-padding-top:calc(var(--header-offset, 9rem) + 1rem)}.site-header[data-navigation]{padding-block:.75rem}.site-header nav{gap:.35rem 1rem;padding-top:.25rem}}
@media(max-height:540px){.site-header[data-navigation]{position:static}html{scroll-padding-top:1rem}}
@media(prefers-reduced-motion:reduce){.image-expand,.photo-zoom{transition:none}}
