:root{--brown:#917236;--gold:#D6B153;--ink:#353332;--sand:#EBD8A9;--champagne:#F5ECD4;--paper:#FBF7EE;--line:rgba(145,114,54,.25);--max:1280px;
  /* Central typography: exactly three desktop sizes and two font families. */
  --font-display:Georgia,serif;
  --font-body:Arial,sans-serif;
  --size-heading:40px;
  --size-subheading:22px;
  --size-text:16px;
  --weight-regular:400;
  --weight-bold:700;
  --leading-heading:1.2;
  --leading-subheading:1.35;
  --leading-text:1.65;
  --space-copy:16px;
  --space-heading:24px;
  --space-label:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow:hidden}
::selection{background:var(--sand);color:var(--ink)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;text-underline-offset:5px}
button{font:inherit;color:inherit;cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--brown);outline-offset:6px}
p,h1,h2,h3,figure{margin:0}
button,a{touch-action:manipulation}
.container{width:min(var(--max),calc(100% - 112px));margin-inline:auto}
.section{padding-block:112px}
.eyebrow{color:var(--ink);margin-bottom:25px;display:flex;align-items:center;gap:12px}
.square{width:18px;height:18px;border:1px solid var(--gold);display:inline-block;flex:none}
.skip-link{position:fixed;top:8px;left:16px;background:var(--ink);color:var(--paper);padding:10px 20px;z-index:100;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.header-inner{min-height:116px;display:flex;align-items:center;justify-content:space-between;gap:35px}
.brand{display:block;flex:none;width:342px}
.brand img{width:100%;height:auto;object-fit:contain}
.navigation{display:flex;gap:35px;align-items:center;}
.navigation>a{position:relative;padding-block:12px}
.navigation>a:not(.nav-contact)::after{content:'';position:absolute;bottom:7px;left:0;width:100%;height:1px;background:var(--brown);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.navigation>a:hover::after,.navigation>a[aria-current="location"]::after{transform:scaleX(1)}
.navigation .nav-contact{border:1px solid var(--brown);padding:11px 21px;display:flex;gap:25px;align-items:center;transition:background .2s}
.nav-contact:hover{background:var(--champagne)}
.menu-toggle{display:none}
.hero{padding-block:64px 58px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:44px;align-items:center}
.hero-copy{padding-block:16px}
.hero h1{margin-bottom:28px}
.hero h1 span{color:var(--brown)}
.hero-intro{max-width:370px;margin-bottom:32px}
.button{min-height:54px;background:var(--ink);color:var(--paper);padding:15px 23px;display:inline-flex;gap:30px;align-items:center;justify-content:space-between;border:1px solid var(--ink);transition:background .2s,color .2s}
.button:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.quiet-link{display:flex;width:max-content;gap:18px;margin-top:22px;padding-block:4px;border-bottom:1px solid var(--line)}
.quiet-link:hover{text-decoration:underline}
.hero-location{margin-top:51px}
.hero-visual{min-width:0;padding:0 18px 0 0}
.hero-image-frame{position:relative;margin-bottom:31px;isolation:isolate}
.hero-image-frame::after{content:'';border:1px solid var(--gold);position:absolute;inset:24px -18px -18px 24px;z-index:-1}
.hero-image{width:100%;height:550px;object-fit:cover;object-position:56% 50%}
.hero-visual figcaption{display:flex;justify-content:space-between;align-items:center;gap:15px;}
.image-index{color:var(--ink);white-space:nowrap}
.trust{border-block:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);padding-block:30px}
.trust-item{display:flex;gap:23px;align-items:center;padding:5px 30px;border-right:1px solid var(--line)}
.trust-item:first-child{padding-left:0}.trust-item:last-child{border:0;padding-right:0}
.trust h2{margin-bottom:3px}
.trust-number{color:var(--brown);white-space:nowrap}
.trust-square{width:32px;height:32px;margin:7px;border-color:var(--brown);position:relative}
.double-square::after{content:'';position:absolute;width:24px;height:24px;top:7px;left:7px;border:1px solid var(--gold)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:60px}
.section-intro{max-width:350px;padding-bottom:5px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-bottom:64px}
.service{border-top:1px solid var(--brown);padding-top:23px;display:flex;flex-direction:column;align-items:flex-start}

.service h3{min-height:65px;margin-bottom:21px}
.service p{margin-bottom:29px;max-width:320px}
.text-link{display:inline-flex;gap:22px;align-items:center;border-bottom:1px solid var(--brown);padding-bottom:6px;margin-top:auto;transition:color .2s}
.text-link:hover{text-decoration:underline}
.service-support{background:var(--champagne);padding:36px 40px;display:grid;grid-template-columns:.8fr 1.3fr 1.1fr;gap:40px;align-items:start}
.support-heading{display:flex;gap:18px;align-items:flex-start}
.support-heading .square{margin-top:5px;width:24px;height:24px}
.service-support h3{margin-bottom:9px}
.projects{background:var(--champagne)}
.gallery-hint{display:block;margin-top:20px;color:var(--ink)}
.gallery-hint span{margin-left:8px}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 24px}
.project{min-width:0}
.project-wide,.project-half{grid-column:span 2}
.project-link{display:block;position:relative;overflow:hidden;background:var(--sand)}
.project img{width:100%;height:350px;object-fit:cover;transition:transform .45s ease}
.project-wide img{object-position:center 48%}
.project-half img{height:335px;object-position:center 53%}
.project-link:hover img{transform:scale(1.025)}
.project figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:11px;}
.project figcaption>span:last-child{color:var(--ink);}
.zoom-mark{position:absolute;right:14px;bottom:14px;width:32px;height:32px;display:grid;place-items:center;background:var(--paper);color:var(--ink);transition:background .2s}
.project-link:hover .zoom-mark{background:var(--sand)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.about-visual{position:relative;padding:18px 0 0 18px;isolation:isolate}
.about-visual::before{content:'';position:absolute;top:0;left:0;width:65%;height:70%;border:1px solid var(--gold);z-index:-1}
.about-visual img{width:100%;height:565px;object-fit:cover}
.about-visual figcaption{margin-top:15px}
.about-copy h2{margin-bottom:30px;}
.about-copy h2 span{color:var(--brown)}
.about-copy>p:not(.eyebrow){margin-bottom:18px;max-width:410px}
.about-copy .text-link{margin-top:13px}
.contact{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.contact::after{content:'';position:absolute;right:-55px;top:60px;width:270px;height:270px;border:1px solid rgba(214,177,83,.25);pointer-events:none}
.contact .eyebrow{color:var(--sand)}
.contact-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;margin-bottom:65px;position:relative;z-index:1}
.contact h2 span{color:var(--gold)}
.contact-heading p{margin-bottom:27px}
.button-light{background:var(--sand);color:var(--ink);border-color:var(--sand)}
.button-light:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:38px;border-top:1px solid rgba(235,216,169,.3);padding-top:35px;position:relative;z-index:1}
.contact h3{color:var(--sand);margin-bottom:18px}
.contact-email{overflow-wrap:anywhere;display:inline-block}
.contact-email span{white-space:nowrap}
.contact-grid p{margin-top:12px;color:var(--sand)}
.contact address{font-style:normal;}
.contact-grid a:hover{text-decoration:underline}
.contact :focus-visible{outline-color:var(--gold)}
.site-footer{padding-block:25px}
.footer-inner{display:flex;justify-content:space-between;gap:25px;align-items:center;}
.site-footer nav{display:flex;align-items:center;gap:25px}
.site-footer nav a:hover{text-decoration:underline}
.back-top{width:35px;height:35px;border:1px solid var(--line);display:grid;place-items:center}
.lightbox{padding:0;border:1px solid var(--gold);background:var(--paper);color:var(--ink);max-width:calc(100vw - 40px);width:min(1100px,calc(100vw - 40px));max-height:calc(100dvh - 40px)}
.lightbox::backdrop{background:rgba(53,51,50,.94)}
.lightbox-inner{padding:20px 24px 18px}
.lightbox form{display:flex;justify-content:flex-end;margin-bottom:14px}
.lightbox-close{border:0;background:transparent;padding:5px 0 5px 15px;display:flex;align-items:center;gap:15px;min-height:44px}
.lightbox-image-wrap{position:relative;display:flex;justify-content:center;background:var(--ink)}
.lightbox-image{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 220px);object-fit:contain}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);height:44px;width:44px;border:1px solid var(--gold);background:var(--paper);color:var(--ink);}
.lightbox-prev{left:12px}.lightbox-next{right:12px}
.lightbox-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:15px}.lightbox-count{white-space:nowrap}
@media(min-width:1600px){.hero{padding-block:80px}.hero-image{height:610px}}
@media(max-width:1100px){
  .container{width:calc(100% - 72px)}.header-inner{gap:20px;min-height:104px}.brand{width:290px}.navigation{gap:23px;}.navigation .nav-contact{padding:9px 15px;gap:15px}
  .hero-grid{gap:25px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.hero-image{height:500px}.hero-intro{max-width:330px;}.hero-location{margin-top:33px}
  .trust-item{gap:15px;padding-inline:20px}.trust-square{width:26px;height:26px;margin:4px}
  .section{padding-block:85px}.service-grid{gap:30px}.service-support{gap:28px;padding:30px;grid-template-columns:.85fr 1.1fr 1fr}.support-heading{gap:12px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}.project-wide,.project-half{grid-column:span 1}.project img,.project-half img{height:400px}.project:first-child img{object-position:50% 48%}
  .about-grid{gap:55px}.about-visual img{height:520px}.contact-grid{gap:24px;grid-template-columns:.9fr 1.25fr 1fr}.footer-tagline{display:none}
}
@media(max-width:760px){
  html{scroll-padding-top:105px}.container{width:calc(100% - 48px)}.section{padding-block:68px}.header-inner{min-height:90px;position:relative;flex-wrap:wrap;gap:0}.brand{width:252px}
  .navigation{width:100%;flex-wrap:wrap;gap:8px 24px;padding-bottom:18px;justify-content:center}.navigation .nav-contact{border:0;padding:12px 0;gap:10px}
  .js .menu-toggle{display:flex;align-items:center;gap:9px;background:transparent;border:0;min-height:44px;padding:8px 0 8px 8px}.menu-icon{width:20px;height:12px;border-block:1px solid var(--ink);position:relative}
  .menu-icon::after{content:'';position:absolute;top:5px;left:0;right:0;border-top:1px solid var(--ink)}
  .js .navigation{display:none}.js .navigation.is-open{display:flex;flex-direction:column;align-items:stretch;padding:8px 0 20px;gap:0}.js .navigation>a{padding:13px 0;border-bottom:1px solid var(--line);}.js .navigation .nav-contact{display:flex;justify-content:space-between}
  .js .navigation>a::after{display:none}.menu-toggle[aria-expanded="true"] .menu-icon{border:0}.menu-toggle[aria-expanded="true"] .menu-icon::before,.menu-toggle[aria-expanded="true"] .menu-icon::after{content:'';position:absolute;inset:5px 0 auto;border-top:1px solid var(--ink);transform:rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-icon::after{transform:rotate(-45deg)}
  .hero{padding-block:43px 32px}.hero-grid{grid-template-columns:1fr;gap:37px}.hero-copy{padding:0}.eyebrow{margin-bottom:23px}.hero h1{margin-bottom:23px}.hero-intro{max-width:430px;margin-bottom:26px;}.button{min-height:53px;padding:15px 20px}.hero-location{margin-top:28px;}.quiet-link{margin-top:17px}
  .hero-visual{padding-right:12px}.hero-image{height:420px;object-position:54% 50%}.hero-image-frame{margin-bottom:26px}.hero-image-frame::after{inset:16px -12px -12px 16px}.hero-visual figcaption{gap:8px}
  .trust-grid{grid-template-columns:1fr;padding-block:8px}.trust-item{padding:21px 0;gap:24px;border-right:0;border-bottom:1px solid var(--line)}.trust-item:last-child{padding-right:0}.trust-number{min-width:55px}.trust-square{width:28px;height:28px;margin:5px 14px}
  .section-heading{display:block;margin-bottom:36px}.section-intro{max-width:450px;margin-top:25px;padding:0}.service-grid{grid-template-columns:1fr;gap:32px;margin-bottom:36px}.service{display:flex;flex-direction:column;align-items:flex-start;padding-top:19px}.service h3{min-height:0;margin-bottom:16px}.service h3 br{display:none}.service p{max-width:none;margin-bottom:18px;}.service .text-link{justify-self:start}.service-support{grid-template-columns:1fr;gap:25px;padding:29px 24px}.support-heading p br{display:none}
  .gallery{gap:28px 18px}.project img,.project-half img{height:300px}.gallery-hint{margin-top:17px}.about-grid{grid-template-columns:1fr;gap:40px}.about-visual{max-width:480px;padding:12px 0 0 12px}.about-visual img{height:430px;object-position:50% 45%}.about-copy>p:not(.eyebrow){max-width:500px}
  .contact-heading{grid-template-columns:1fr;gap:28px;margin-bottom:40px}.contact-grid{grid-template-columns:1fr;gap:29px;padding-top:29px}.contact h3{margin-bottom:11px;}.contact-grid p{margin-top:6px}.contact::after{width:200px;height:200px;right:-85px;top:40px}
  .footer-inner{flex-wrap:wrap;gap:15px;}.site-footer nav{gap:23px;width:100%;justify-content:space-between}.site-footer{padding-block:25px}.lightbox{max-width:calc(100vw - 20px);width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.lightbox-inner{padding:10px 12px 16px}.lightbox-image{max-height:calc(100dvh - 205px)}.lightbox-prev{left:6px}.lightbox-next{right:6px}.lightbox-prev,.lightbox-next{width:40px;height:44px}
}
@media(max-width:600px){.gallery{grid-template-columns:1fr;gap:28px}.project img,.project-half img{height:410px}.project:first-child img{height:380px}.hero-image{height:370px}}
@media(max-width:380px){.container{width:calc(100% - 40px)}.brand{width:226px}.header-inner{min-height:82px}.menu-label{display:none}.menu-toggle{min-width:44px;justify-content:flex-end}.hero-image{height:330px}.project img,.project-half img{height:370px}}
.about-portrait{width:100%;max-width:450px;justify-self:center}
.about-portrait img{height:auto;aspect-ratio:731 / 1024;object-fit:contain}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.project-link:hover img{transform:none}}

/* Typography roles. All captions, navigation, contact details and controls
   inherit Arial 16 px; only headings and emphasized information differ. */
body{font-family:var(--font-body);font-size:var(--size-text);font-weight:var(--weight-regular);line-height:var(--leading-text);letter-spacing:normal;text-transform:none}
h1,h2{font-family:var(--font-display);font-size:var(--size-heading);font-weight:var(--weight-regular);line-height:var(--leading-heading)}
h3,.trust h2,.support-heading p,.trust-number,.lightbox-caption h2{font-family:var(--font-body);font-size:var(--size-subheading);font-weight:var(--weight-bold);line-height:var(--leading-subheading)}
.button,.text-link,.contact-phone{font-weight:var(--weight-bold)}
.trust-number span{font:inherit}
.hero h1,.about-copy h2{margin-bottom:var(--space-heading)}
.eyebrow,.service h3,.service-support h3,.contact h3{margin-bottom:var(--space-label)}
.hero-intro,.service p,.contact-heading p{margin-bottom:var(--space-heading)}
.about-copy>p:not(.eyebrow){margin-bottom:var(--space-copy)}
.project figcaption,.about-visual figcaption{margin-top:var(--space-label)}
.trust-item>div,.service-support>div{min-width:0}
.service-support h3{overflow-wrap:break-word;hyphens:auto}
/* Let the larger navigation text wrap within its existing tablet column. */
@media(min-width:761px) and (max-width:1100px){.navigation{flex-wrap:wrap;justify-content:flex-end;row-gap:0}}
/* Smartphone adjustment changes the same three central type roles only. */
@media(max-width:600px){:root{--size-heading:32px;--size-subheading:20px}}
/* Preserve the existing single-row mobile header with the larger menu label. */
@media(max-width:760px){.js .menu-toggle{padding-inline:0}.service h3 br{display:initial}}
@media(max-width:380px){.brand{max-width:calc(100% - 44px)}}
