.combined-home{background:#f5f2ec;color:#292e28;font-family:Arial,sans-serif;font-size:15px;letter-spacing:0;overflow-x:hidden}.combined-home header{height:104px;padding:0 5%;background:#f5f2ec}.combined-home header>a{font-size:25px;letter-spacing:3px;font-weight:500;color:#292e28}.combined-home nav{gap:30px;font-size:11px;text-transform:uppercase;letter-spacing:1.5px}.combined-home nav>a:last-child{border-bottom:1px solid #6b705c;padding-bottom:5px}.skip-link{position:fixed;top:-100px;left:15px;background:white;padding:12px;z-index:100}.skip-link:focus{top:12px}.combined-home h1,.combined-home h2,.combined-home h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;color:inherit;letter-spacing:-1.8px}.combined-home h1{font-size:clamp(44px,5.6vw,86px);line-height:1.06;white-space:pre-line;margin:24px 0}.combined-home h2{font-size:clamp(36px,4vw,60px);line-height:1.1;white-space:pre-line;margin:20px 0 30px}.combined-home h3{font-size:29px;letter-spacing:-.6px;margin:0 0 30px}.combined-home p{line-height:1.85}.combined-home .eyebrow{font-size:10px;letter-spacing:2.7px;line-height:1.4;text-transform:uppercase;margin:0}.hero{position:relative;min-height:690px;height:calc(100svh - 104px);max-height:950px;color:#fff;padding:0 5%;display:flex;align-items:center;background:#333}.hero-photo{position:absolute;inset:0}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,21,16,.68),rgba(15,21,16,.25) 55%,rgba(15,21,16,.05))}.hero-copy{position:relative;padding:50px 0 110px;max-width:760px}.hero-intro{max-width:390px;font-size:14px;color:#f2f0e9;margin-bottom:35px!important}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:44px;padding:17px 24px;background:#e9e4d8;color:#292e28;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;transition:background .2s}.button:after,.text-link:after{content:'↗';font-size:20px;font-family:Arial,sans-serif}.button:hover{background:white;text-decoration:none}.hero-foot{position:absolute;bottom:0;left:5%;right:5%;border-top:1px solid #ffffff50;padding:24px 0;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;text-transform:uppercase}.section-pad{padding:110px 7%}.mission-section{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}.mission-copy{padding-top:32px;max-width:560px;color:#62645b;font-size:14px}.services-section{background:#e9e7de}.services-top{display:grid;grid-template-columns:1.2fr 1fr;gap:12%;align-items:start}.services-top>p{font-size:14px;color:#62645b;padding-top:34px}.capabilities{display:grid;grid-template-columns:.9fr 1fr 1fr;gap:5%;margin-top:48px;border-top:1px solid #c8c9be;padding-top:50px}.drawing img{width:100%;height:360px;object-fit:cover;filter:saturate(.5);mix-blend-mode:multiply}.capability ul{padding-left:0;list-style:none;margin:20px 0}.capability li{font-size:12px;line-height:1.65;padding:9px 0;border-bottom:1px solid #cdcec4;color:#60635a}.small-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#66695d}.services-detail{border-top:1px solid #c8c9be;margin-top:45px;padding-top:25px;max-width:760px}.services-detail p{font-size:13px;color:#62645b;margin:0}.gallery-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:45px}.gallery-heading h2{margin-top:0}.interior-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px 30px}.interior-grid figure{margin:0;min-width:0}.interior-grid figure:first-of-type{grid-column:1/-1}.interior-grid img{display:block;width:100%;height:410px;object-fit:cover}.interior-grid figure:first-of-type img{height:600px}.interior-grid figcaption{padding-top:14px;font-size:10px;letter-spacing:1px;color:#72756b;text-transform:uppercase}.process-section{display:grid;grid-template-columns:1fr 1fr;background:#343c32;color:#f3f1e9}.process-image img{width:100%;height:100%;min-height:700px;object-fit:cover}.process-copy{padding:90px 12%}.process-copy>p:not(.eyebrow){font-size:13px;color:#d0d4c9;line-height:1.9}.text-link{display:inline-flex;gap:50px;align-items:center;border-bottom:1px solid #929a88;padding:15px 0;font-size:11px;letter-spacing:1px;text-transform:uppercase}.contact-section{text-align:center;padding-top:110px;padding-bottom:110px}.contact-section h2{margin:25px 0 38px}.contact-section .button{background:#343c32;color:#fff}.combined-home footer{border-top:1px solid #d8d8cd;margin:0 5%;padding:32px 0;display:flex;align-items:center;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:1px}.combined-home footer>a:first-child{font-size:17px;letter-spacing:2px}.combined-home footer p{margin:0;color:#707366}.combined-home a:focus-visible,.combined-home button:focus-visible{outline:2px solid #a49b7d;outline-offset:6px}html{scroll-behavior:smooth;scroll-padding-top:25px}
@media(min-width:1600px){.section-pad{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}}
@media(max-width:1000px){.combined-home header>a{font-size:20px;letter-spacing:2px}.combined-home nav{gap:20px;font-size:10px}.section-pad{padding:75px 6%}.capabilities{grid-template-columns:1fr 1fr}.drawing{display:none}.process-copy{padding:65px 10%}.process-image img{min-height:650px}.interior-grid img{height:300px}.interior-grid figure:first-of-type img{height:450px}}
@media(max-width:700px){.combined-home header{height:80px;padding:0 6%}.combined-home header>a{font-size:20px;letter-spacing:2px}.combined-home .menu-toggle{position:absolute;top:25px;right:6%}.combined-home nav{top:80px;padding:25px 6%;gap:22px;background:#f5f2ec}.hero{height:calc(90svh - 80px);min-height:610px;padding:0 7%}.hero-copy{padding-bottom:100px}.hero-photo img{object-position:60% center}.hero-photo:after{background:linear-gradient(90deg,#131a16b8,#131a1630)}.hero-intro{max-width:310px;font-size:13px}.hero-foot{left:7%;right:7%;font-size:8px;letter-spacing:1.3px;gap:20px}.hero-foot>span:last-child{display:none}.section-pad{padding:65px 7%}.mission-section,.services-top{grid-template-columns:1fr;gap:0}.mission-copy,.services-top>p{padding-top:0}.combined-home h2{font-size:37px}.capabilities{grid-template-columns:1fr;gap:40px;margin-top:25px;padding-top:35px}.combined-home h3{font-size:28px;margin-bottom:20px}.gallery-heading{display:block;margin-bottom:30px}.gallery-heading .eyebrow{margin-bottom:20px}.interior-grid{gap:30px 15px}.interior-grid img{height:210px}.interior-grid figure:first-of-type img{height:320px}.interior-grid figcaption{font-size:8px;line-height:1.7;letter-spacing:.5px}.process-section{grid-template-columns:1fr}.process-image img{height:340px;min-height:0;display:block}.process-copy{padding:60px 7%}.combined-home footer{align-items:flex-start;gap:22px;flex-wrap:wrap;padding:30px 0}.combined-home footer p{order:3;width:100%}.contact-section h2{font-size:34px}.button{padding:15px 20px}}
/* Keep the opening screen fluid; allow content to grow on short viewports. */
.combined-home .hero{height:auto;min-height:calc(100svh - 104px);max-height:none;display:grid;grid-template-rows:1fr auto}
.combined-home .hero-copy{align-self:center;min-width:0;padding:clamp(36px,6svh,64px) 0}
.combined-home .hero-foot{position:relative;left:auto;right:auto;bottom:auto;gap:24px}
.combined-home .hero-foot>span{min-width:0}
.combined-home .hero h1{overflow-wrap:break-word}
@media(max-width:700px){
  .combined-home .hero{min-height:calc(100svh - 80px)}
  .combined-home .hero h1{font-size:clamp(32px,8.8vw,44px);letter-spacing:-1.2px;margin:20px 0}
  .combined-home .hero-copy{padding:36px 0}
  .combined-home .hero-intro{margin-bottom:26px!important}
  .combined-home .hero-foot{padding:20px 0;letter-spacing:1px}
  .combined-home .menu-toggle{top:18px;right:calc(6% - 11px);width:44px;height:44px;padding:13px}
  .combined-home nav{max-height:calc(100svh - 80px);overflow-y:auto}
}
@media(max-width:360px){.combined-home header>a{font-size:18px;letter-spacing:1.5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Give new visitors a direct next step in the opening screen. */
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 28px}
.hero-contact{min-height:50px;box-sizing:border-box;font-weight:600}
.hero-secondary{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:11px;letter-spacing:1px;border-bottom:1px solid #ffffff80;text-transform:uppercase}
.hero-secondary:hover{border-bottom-color:#fff;text-decoration:none}
.combined-home .hero-contact-note{max-width:390px;margin:14px 0 0;font-size:12px;line-height:1.6;color:#f2f0e9}
@media(max-width:700px){
 .hero-actions{align-items:flex-start;flex-direction:column;gap:8px}
 .hero-contact{width:100%;max-width:340px;min-height:52px}
 .combined-home .hero-contact-note{max-width:310px;margin-top:10px;font-size:11px}
 .combined-home .hero-copy{padding:28px 0}
 .combined-home .hero-intro{margin-bottom:20px!important}
}
@media(max-width:700px) and (max-height:700px){
 .combined-home .hero-copy{padding:20px 0}
 .combined-home .hero h1{margin:14px 0}
 .combined-home .hero-intro{line-height:1.6;margin-bottom:16px!important}
 .combined-home .hero-foot{padding:14px 0}
}

/* Warm forest scrim keeps fine serif strokes clear over bright cabinetry. */
.combined-home .hero-photo:after{
 background:linear-gradient(0deg,rgba(20,28,22,.55),transparent 26%),linear-gradient(90deg,rgba(20,28,22,.84) 0%,rgba(20,28,22,.76) 48%,rgba(20,28,22,.60) 72%,rgba(20,28,22,.24) 100%);
}
.combined-home .hero-copy{color:#fffaf0}
.combined-home .hero h1{text-shadow:0 2px 18px rgba(10,17,12,.22)}
.combined-home .hero-intro,.combined-home .hero-contact-note{color:#fffaf0}
.combined-home .hero-contact-note{font-size:13px}
.combined-home .hero-secondary{color:#fffaf0;border-bottom-color:#fffaf0b3}
@media(max-width:700px){
 .combined-home .hero-photo:after{
  background:linear-gradient(0deg,rgba(20,28,22,.35),transparent 30%),linear-gradient(90deg,rgba(20,28,22,.84),rgba(20,28,22,.74) 65%,rgba(20,28,22,.64));
 }
 .combined-home .hero-intro{font-size:14px;line-height:1.75}
 .combined-home .hero-contact-note{font-size:12px}
}

/* Motion follows the same language as the interiors: planes, reveals and fine rules. */
@media (prefers-reduced-motion:no-preference){
 .hero-photo{overflow:hidden}
 .hero-photo img{animation:room-open 1.7s cubic-bezier(.16,1,.3,1) both}
 .hero-copy>.eyebrow{animation:ink-in .8s .1s both}
 .hero-copy h1{animation:headline-open 1.15s .12s cubic-bezier(.16,1,.3,1) both}
 .hero-copy>.hero-intro{animation:ink-in .9s .27s both}
 .hero-foot{transform-origin:left;animation:rule-in 1.1s .2s cubic-bezier(.22,1,.36,1) both}
 .hero-actions{animation:ink-in .7s .32s both}
 .hero-contact-note{animation:ink-in .7s .4s both}
 .motion-enter.section-title h2,.motion-enter.services-top h2,.motion-enter.gallery-heading h2,.motion-enter.process-copy h2,.motion-enter.contact-section h2{animation:headline-open 1s cubic-bezier(.16,1,.3,1) both}
 .motion-enter.mission-copy,.motion-enter.services-top>p,.motion-enter.capability{animation:ink-in .8s cubic-bezier(.16,1,.3,1) both}
 .capabilities{position:relative}
 .capabilities:before{content:'';position:absolute;top:-1px;left:0;width:100%;height:1px;background:#626b59;transform:scaleX(0);transform-origin:left}
 .capabilities.motion-enter:before{animation:rule-in 1.2s cubic-bezier(.22,1,.36,1) both}
 .process-image.motion-enter img{animation:panel-open 1.25s cubic-bezier(.76,0,.24,1) both}
 .button{position:relative;isolation:isolate;overflow:hidden;transition:color .3s,background .3s,box-shadow .3s}
 .button:before{content:'';position:absolute;inset:0;background:#fff;z-index:-1;transform:translateX(-105%) skewX(-12deg);transition:transform .55s cubic-bezier(.22,1,.36,1)}
 .button:after,.text-link:after{transition:transform .35s cubic-bezier(.22,1,.36,1)}
 .button:is(:hover,:focus-visible):before{transform:translateX(0) skewX(0)}
 .button:is(:hover,:focus-visible){color:#292e28;box-shadow:0 5px 18px #141c1614}
 .button:is(:hover,:focus-visible):after,.text-link:is(:hover,:focus-visible):after{transform:translate(3px,-3px)}
 .combined-home nav>a{position:relative;text-decoration:none}
 .combined-home nav>a:after{content:'';position:absolute;left:0;bottom:-5px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.22,1,.36,1)}
 .combined-home nav>a:is(:hover,:focus-visible):after{transform:scaleX(1);transform-origin:left}
 .menu-toggle i,.menu-toggle i:before,.menu-toggle i:after{transition:transform .3s,top .3s,background .3s}
 .menu-toggle[aria-expanded=true] i{background:transparent}
 .menu-toggle[aria-expanded=true] i:before{top:0;transform:rotate(45deg)}
 .menu-toggle[aria-expanded=true] i:after{top:0;transform:rotate(-45deg)}
 @media(hover:hover) and (pointer:fine){
  .interior-grid figure img{transition:filter .7s}
  .interior-grid figure:hover img{filter:saturate(1.12) contrast(1.025)}
  .interior-grid figcaption{transition:color .3s,translate .4s}
  .interior-grid figure:hover figcaption{color:#343c32;translate:5px 0}
 }
 @media(max-width:700px){
  .hero-photo img{animation-duration:1.2s}
  .hero-copy h1{animation-duration:.85s}
  .process-image.motion-enter img{animation-duration:.85s}
  nav.open{animation:menu-open .35s cubic-bezier(.22,1,.36,1) both}
 }
}
@keyframes room-open{from{transform:scale(1.075);filter:brightness(.75)}to{transform:scale(1);filter:brightness(1)}}
@keyframes headline-open{from{clip-path:inset(0 0 100% 0);transform:translateY(18px)}to{clip-path:inset(-8% -2% -8% -2%);transform:translateY(0)}}
@keyframes ink-in{from{opacity:.15;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes rule-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes panel-open{from{clip-path:var(--reveal-start,inset(0 100% 0 0))}to{clip-path:inset(0 0 0 0)}}
@keyframes menu-open{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){
 .combined-home *, .combined-home *:before,.combined-home *:after{animation:none!important;transition:none!important}
}

/* A closing architectural rule, with a clear invitation and quieter wayfinding. */
.combined-home footer.site-footer{display:block;padding:48px 0 28px;position:relative}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-bottom:40px}
.footer-brand>a{font-size:clamp(18px,2vw,25px);letter-spacing:2px}
.combined-home .footer-brand p{margin:12px 0 0;font-size:10px;letter-spacing:1px}
.combined-home .footer-contact{background:#343c32;color:#fffaf0;min-height:72px;min-width:320px;box-sizing:border-box;padding:24px 28px;font-size:12px;gap:54px}
.combined-home .footer-contact:hover{background:#e9e4d8;color:#292e28}
.footer-bottom{border-top:1px solid #d8d8cd;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.footer-location{display:inline-flex;align-items:center;gap:12px;min-height:44px;line-height:1.6}
.footer-location svg{width:22px;height:26px;flex-shrink:0}
.footer-socials{display:flex;flex-wrap:wrap;gap:12px 26px}
.footer-socials:empty{display:none}
.footer-socials a{display:inline-flex;align-items:center;min-height:44px;position:relative}
.footer-socials a:after{content:'↗';margin-left:10px;font-size:16px}
@media(prefers-reduced-motion:no-preference){
 .site-footer:before{content:'';position:absolute;left:0;top:-1px;width:100%;height:1px;background:#626b59;transform:scaleX(0);transform-origin:left}
 .site-footer.motion-enter:before{animation:rule-in 1.2s cubic-bezier(.22,1,.36,1) both}
 .footer-location svg,.footer-socials a:after{transition:transform .4s cubic-bezier(.22,1,.36,1)}
 .footer-location:is(:hover,:focus-visible) svg{transform:translateY(-4px)}
 .footer-socials a:is(:hover,:focus-visible):after{transform:translate(3px,-3px)}
 .combined-home .footer-contact:is(:hover,:focus-visible){color:#292e28}
}
@media(max-width:700px){
 .combined-home footer.site-footer{margin:0 7%;padding:34px 0 24px}
 .footer-top{flex-direction:column;align-items:stretch;gap:26px;padding-bottom:28px}
 .combined-home .footer-contact{width:100%;min-width:0;min-height:64px;padding:22px;font-size:11px;gap:20px}
 .footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}
 .footer-socials{gap:8px 22px}
}

/* One compact contact panel leaves the map and its controls open. */
.combined-home footer.site-footer{isolation:isolate;margin:0;padding:64px 5%;min-height:560px;box-sizing:border-box;display:flex;align-items:center;justify-content:flex-end;gap:0;background:#e9e7de}
.footer-map{position:absolute;inset:0;z-index:0;margin:0;border:0;overflow:hidden}
.footer-map iframe{display:block;width:100%;height:100%;border:0}
.footer-map:focus-within{outline:2px solid #a49b7d;outline-offset:-4px}
.footer-panel{position:relative;z-index:1;width:350px;max-width:100%;box-sizing:border-box;padding:32px;background:#f5f2ec;box-shadow:0 12px 48px #292e2826}
.footer-top{display:flex;flex-direction:column;align-items:stretch;gap:28px;padding:0 0 26px}
.footer-brand>a{display:inline-block;font-size:21px;line-height:1.4;letter-spacing:2px}
.combined-home .footer-brand p{font-size:9px;line-height:1.8;letter-spacing:.8px}
.combined-home .footer-contact{width:100%;min-width:0;min-height:64px;padding:20px;font-size:10px;gap:16px}
.footer-bottom{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:22px 0 0;border-top:1px solid #d0d0c5}
.footer-location{font-size:10px;letter-spacing:.7px;line-height:1.8;align-items:flex-start}
.footer-location svg{margin-top:3px}
.footer-location span{max-width:220px}
.footer-socials{gap:8px 22px}
.site-footer:before{z-index:2;pointer-events:none}
@media(max-width:1000px){
 .combined-home footer.site-footer{padding:340px 6% 28px;min-height:0;justify-content:center}
 .footer-panel{width:100%;max-width:580px;padding:28px}
 .footer-map{bottom:100px}
 .footer-map iframe{height:100%}
 .footer-brand>a{font-size:23px}
 .footer-location span{max-width:none}
}
@media(max-width:480px){
 .combined-home footer.site-footer{padding:320px 5% 24px}
 .footer-panel{padding:24px}
 .footer-brand>a{font-size:20px}
 .footer-top{gap:24px;padding-bottom:22px}
 .footer-bottom{padding-top:18px}
}

/* Keep the gallery backing consistent while eagerly loaded photographs decode. */
#interiors .interior-grid img{background:#ded9cf}
