:root{--paper:#f0eee8;--ink:#292b27;--muted:#55594f;--line:#cdcdc3;--accent:#7c4937;--type-small:20px;--type-medium:24px;--type-large:32px;--gutter:clamp(24px,6vw,100px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:var(--type-medium);line-height:1.65;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}img{max-width:100%;display:block}button,a{touch-action:manipulation}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.35;overflow-wrap:break-word}p{color:var(--muted);margin-bottom:20px;font-size:var(--type-medium)}h1{font-size:var(--type-medium);font-weight:500}h2{font-size:var(--type-large);font-weight:400;margin-bottom:24px}h3{font-size:var(--type-medium);font-weight:700;margin-bottom:16px}em{font-style:normal;color:var(--accent)}small{font-size:var(--type-small)}
header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:100px;padding:10px var(--gutter);background:var(--paper);border-bottom:1px solid var(--line)}.brand{display:block;flex:0 0 auto;line-height:1}.logo{width:270px;height:auto}.brand .logo{max-width:100%}nav{display:flex;align-items:center;gap:24px;font-size:var(--type-small)}nav a{display:block;padding:12px 0}nav a:last-child{border-bottom:1px solid var(--ink)}#menu{display:none}
.hero{padding:28px var(--gutter) 0}.hero-top,.section-label{display:flex;align-items:start;justify-content:space-between;gap:20px;font-size:var(--type-small);line-height:1.5}.hero-top p{font-size:inherit;margin:0}.hero-top>span{font-size:inherit;color:var(--muted)}.hero-title{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:30px 0}.hero-title>div{min-width:0}.hero-title p{margin:0 0 20px}.text-link{display:inline-block;font-size:var(--type-small);border-bottom:1px solid #808277;padding:8px 0;line-height:1.6}.text-link b{font-weight:400;margin-left:12px}.image-wrap{margin:0;position:relative;overflow:hidden;background:#d8d5cb}.image-wrap img{width:100%;height:100%;object-fit:cover}.hero-image{height:490px;background:#1c303f}.hero-image img{filter:saturate(.55);object-position:center}.image-wrap img.fallback{object-fit:contain;background:#17231b;filter:none}.image-wrap figcaption{position:absolute;top:12px;left:12px;right:auto;bottom:auto;z-index:1;background:#f0eee8ed;color:var(--ink);font-size:var(--type-small);line-height:1.5;padding:3px 10px}.hero-foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:var(--type-small);padding:20px 0;border-bottom:1px solid var(--line)}.hero-foot span{color:var(--muted)}
.section{padding:75px var(--gutter)}.section-label{margin-bottom:40px;color:#63685b}.section-label>span:last-child{color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7%}.split>*{min-width:0}.service-title{font-weight:700;margin-top:12px}.service-index{display:block;color:var(--accent);font-size:var(--type-small);font-weight:600;line-height:1.5}.lead{font-size:var(--type-medium);color:var(--ink)}.button{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px;border:1px solid var(--ink);font-size:var(--type-small);cursor:pointer;background:transparent;color:var(--ink);width:fit-content;max-width:100%;line-height:1.5;text-align:left}.button:hover{background:var(--ink);color:var(--paper)}.button span{flex:none}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:44px;border-top:1px solid var(--line);padding-top:26px}.steps b{display:block;font-size:var(--type-small);font-weight:400;color:var(--accent);margin-bottom:10px}.steps h3{font-weight:500}.steps p{font-size:var(--type-small);margin:0}.small-note{font-size:var(--type-small);margin:26px 0 0}
.services{background:#e6e4dc}.services>h2{font-size:var(--type-medium);margin-bottom:40px}.feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:6%;align-items:center;margin-bottom:50px}.feature-copy{min-width:0}.feature-copy h3{font-size:var(--type-large);font-weight:700;margin:12px 0 20px}.feature .image-wrap{height:440px}.feature img{filter:grayscale(.5)}.reverse{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.reverse figure{order:2}.reverse .feature-copy{order:1}.other-services{border-top:1px solid #b6b8aa}.service-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,39%);align-items:start;gap:24px;padding:38px 0;border-bottom:1px solid #b6b8aa}.service-entry>div{min-width:0}.service-entry p{margin-bottom:16px}.service-photo{height:auto;aspect-ratio:3/2;align-self:center}.service-photo img{filter:none;object-fit:cover}.service-entry .text-link{font-size:var(--type-small)}.index{font-size:var(--type-small);display:block;margin-bottom:22px}.about .studio-image{margin-top:40px;height:400px}.studio-image img{filter:grayscale(1);transform:rotate(180deg)}
.contact{background:#dddcd2}.contact .index{margin-bottom:20px}.big-phone{display:block;font-size:var(--type-large);line-height:1.5;margin-top:28px}.contact-line{display:block;font-size:var(--type-medium);color:#5e6556;overflow-wrap:anywhere;padding-top:5px}.address{display:block;font-size:var(--type-small);margin-top:22px}.address small{color:var(--accent)}form{padding:30px;background:#edede5;min-width:0}form h3{font-size:var(--type-medium);margin:0 0 12px}form>p{font-size:var(--type-small)}label{display:block;font-size:var(--type-small);margin-top:18px;color:#565f50}input,select,textarea{display:block;width:100%;min-width:0;max-width:100%;background:transparent;border:0;border-bottom:1px solid #adb3a2;border-radius:0;padding:12px 0;color:var(--ink);font-size:var(--type-small);outline:none}select{background:#edede5;text-overflow:ellipsis}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical}.fields{display:grid;grid-template-columns:1fr;gap:0}.form-note{font-size:var(--type-small);margin:20px 0}form .button{width:100%;background:var(--ink);color:var(--paper);border:0}#form-status{font-size:var(--type-small);margin:14px 0 0;color:var(--accent)}
footer{padding:30px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap}footer>a:not(.brand){font-size:var(--type-small)}.credits{margin:0 var(--gutter) 30px;border-top:1px solid var(--line);font-size:var(--type-small);padding-top:16px}.credits summary{cursor:pointer}.credits p{font-size:var(--type-small);margin-top:18px}.credits a{text-decoration:underline;overflow-wrap:anywhere}
@media(min-width:1800px){main,footer,.credits{max-width:1800px;margin-inline:auto}}@media(max-width:1100px){header{min-height:84px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:16px var(--gutter) 24px;border-bottom:1px solid var(--line);max-height:calc(100dvh - 84px);overflow:auto;box-shadow:0 12px 20px #0001}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{padding:13px 0;border-bottom:1px solid var(--line)}nav a:last-child{border-bottom:1px solid var(--line)}#menu{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:var(--type-large);line-height:1;cursor:pointer}.hero-top>span{display:none}.hero-title{grid-template-columns:1fr;gap:20px}.service-entry{grid-template-columns:minmax(0,1fr);gap:20px}.service-photo{grid-column:auto;width:100%;max-width:660px}.split{gap:5%}.feature{gap:5%}}
@media(max-width:760px){:root{--type-small:16px;--type-medium:18px;--type-large:24px;--gutter:20px}html{scroll-padding-top:92px}body{line-height:1.65}header{min-height:78px;padding-block:8px;gap:12px}.logo{width:238px;max-width:calc(100vw - 110px)}nav{max-height:calc(100dvh - 78px)}nav a{font-size:var(--type-medium);min-height:48px}#menu{font-size:var(--type-large)}.hero{padding-top:22px}.hero-top{font-size:var(--type-small)}.hero-title{padding:18px 0 24px;gap:18px}.hero-title h1{font-size:var(--type-medium)}.hero-title p{margin-bottom:12px}.text-link{font-size:var(--type-medium)}.hero-image{height:auto;aspect-ratio:4/3}.hero-image img{height:100%;min-height:240px}.hero-foot{display:block;padding:16px 0}.hero-foot a{display:block;margin-top:10px}.section{padding-block:42px}.section-label{font-size:var(--type-small);margin-bottom:24px}.section-label>span:last-child{display:none}.split,.feature,.reverse{grid-template-columns:1fr;gap:24px}.split h2{margin-bottom:0}.split p:last-child{margin-bottom:0}.feature .image-wrap{height:auto;aspect-ratio:3/2}.feature .image-wrap img{height:100%}.feature-copy h3{font-size:var(--type-large);margin:10px 0 16px}.feature{margin-bottom:34px}.reverse figure,.reverse .feature-copy{order:initial}.feature-copy .text-link{margin-top:8px}.steps{grid-template-columns:1fr;gap:22px;margin-top:30px;padding-top:22px}.steps>div{border-bottom:1px solid var(--line);padding-bottom:20px}.steps h3{margin-bottom:10px}.steps p{font-size:var(--type-medium)}.small-note{font-size:var(--type-small)}.button{width:100%;font-size:var(--type-medium);padding:13px 16px;min-height:48px}.other-services .service-entry{grid-template-columns:minmax(0,1fr);gap:10px 12px;padding:26px 0}.service-entry .service-index{padding-top:2px}.service-entry h3{font-size:var(--type-large);margin-bottom:14px}.service-entry p{font-size:var(--type-medium);margin-bottom:10px}.service-entry .text-link{font-size:var(--type-medium);min-height:44px}.service-photo{grid-column:1/-1;margin-top:8px;width:100%;max-width:none;aspect-ratio:3/2}.image-wrap figcaption{top:8px;left:8px;padding:3px 9px;font-size:var(--type-small)}.about .studio-image{height:auto;aspect-ratio:3/2;margin-top:25px}.about .studio-image img{height:100%;min-height:220px}.contact .split{gap:28px}.big-phone{font-size:var(--type-large);margin-top:22px}.contact-line{font-size:var(--type-medium);padding-top:8px}.address{font-size:var(--type-medium)}form{padding:20px}form h3{font-size:var(--type-large)}label{font-size:var(--type-small)}input,select,textarea{font-size:var(--type-small);min-height:48px}.form-note{font-size:var(--type-small);line-height:1.55}form .button{font-size:var(--type-small)}footer{padding-block:24px;gap:20px;display:grid;grid-template-columns:1fr}footer .logo{width:238px}.credits{font-size:var(--type-small)}.credits p{font-size:var(--type-small)}}@media(max-width:360px){:root{--gutter:16px}.logo{width:218px;max-width:calc(100vw - 94px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.service-details{margin:4px 20px 12px 0;color:var(--accent)}.office-facts{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.service-page{max-width:1400px;margin:auto}.service-breadcrumb{padding:24px var(--gutter);font-size:var(--type-small);overflow-wrap:anywhere}.service-breadcrumb a{text-decoration:underline}.service-hero{padding:24px var(--gutter) 50px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:50px;align-items:start}.service-hero h1{font-size:var(--type-large);font-weight:700;margin:16px 0 24px}.service-hero figure{aspect-ratio:3/2}.service-hero img{width:100%;height:100%;object-fit:cover}.service-toc{display:flex;flex-wrap:wrap;gap:10px 24px;padding:24px var(--gutter);border-block:1px solid var(--line);font-size:var(--type-small)}.service-toc a{padding:8px 0;text-decoration:underline}.service-content{padding:45px var(--gutter);display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:60px}.service-content article{min-width:0}.service-content article section{padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid var(--line);scroll-margin-top:110px}.service-content h2{font-weight:700}.service-content li{margin-bottom:14px}.service-content ul,.service-content ol{padding-left:1.3em;color:var(--muted)}.service-aside{border-left:1px solid var(--line);padding-left:28px;min-width:0}.service-aside a{display:block;padding:10px 0;text-decoration:underline;overflow-wrap:anywhere}.service-aside p,.service-aside a{font-size:var(--type-small)}.service-contact{padding:30px;background:#dddcd2}.service-contact a{display:block;padding:8px 0;overflow-wrap:anywhere}.related-links a{display:block;padding:10px 0;text-decoration:underline}.service-footer{border-top:1px solid var(--line)}.service-image-note{font-size:var(--type-small);margin-top:10px}@media(max-width:760px){.service-hero,.service-content{grid-template-columns:1fr;gap:28px}.service-hero{padding-top:12px;padding-bottom:28px}.service-content{padding-block:32px}.service-breadcrumb{padding-block:18px}.service-aside{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.service-contact{padding:22px}.service-toc{gap:0 20px}.service-content article section{scroll-margin-top:92px}}

.office-map{border-top:1px solid var(--line);background:var(--paper)}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:24px}.map-heading h2{font-weight:700;margin-bottom:12px}.map-heading p{margin:0}.office-map iframe{display:block;width:100%;height:420px;max-width:100%;border:1px solid var(--line);background:#e6e4dc}.map-link{margin:14px 0 0}@media(max-width:760px){.map-heading{display:block}.map-heading .button{margin-top:18px}.office-map iframe{height:320px}}

.visit-counter{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 0;border-top:1px solid var(--line);width:100%}.visit-digits{display:flex;gap:5px}.visit-digits span{display:flex;align-items:center;justify-content:center;min-width:36px;height:46px;padding:0 5px;border:1px solid var(--line);background:#e6e4dc;color:var(--accent);font:700 26px/1 monospace;font-variant-numeric:tabular-nums}.visit-counter p{font-size:var(--type-small);line-height:1.5;margin:0}.visit-counter .visit-history{color:var(--muted);margin-top:4px}@media(max-width:760px){.visit-counter{gap:12px}.visit-digits span{min-width:30px;height:40px;font-size:24px}}

.visit-person{flex:0 0 30px;color:var(--accent)}.visit-counter{gap:12px}

.hero-image{background:#000}.hero-image img{filter:none;object-fit:contain;object-position:center}

/* Diagrams placed within their related service text. */
.inline-diagram{margin:24px 0;width:100%;height:auto;background:#fff}.inline-diagram img{width:100%;height:auto;object-fit:contain;filter:none}.feature.feature-stacked{grid-template-columns:minmax(0,1fr)}.feature-stacked .inline-diagram{height:auto;aspect-ratio:auto}.feature-stacked .inline-diagram img{height:auto}

/* Consistent service rows and telephone alignment. */
.dgm-layout{align-items:start;grid-template-columns:minmax(0,1fr) minmax(260px,39%);gap:24px}.dgm-photo{width:100%;height:auto;align-self:center;background:#fff}.dgm-photo img{width:100%;height:auto;object-fit:contain;filter:none}.dgm-copy .service-title{margin-top:0}.dgm-copy .service-details{margin-top:14px}
.phone-line,.service-contact .phone-line,.service-aside .phone-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;font-size:var(--type-medium);line-height:1.5;padding:8px 0;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}.phone-line strong{font-weight:700;white-space:nowrap}.phone-line small{font-size:var(--type-small);font-weight:400;white-space:nowrap}
@media(max-width:760px){.dgm-layout{grid-template-columns:minmax(0,1fr)}.phone-line{gap:4px 10px}}

/* Center the complete introductory text above the hero image. */
.hero-title{grid-template-columns:minmax(0,1fr);text-align:center;gap:20px;max-width:960px;margin-inline:auto}.hero-title>div{width:100%}
