/* Editorial typography and restrained spacing, shared by every preview page. */
.lead-section{padding:54px 0!important}.lead-section .container{max-width:960px}.lead-section .center-heading{margin-bottom:24px;max-width:620px}.lead-section .center-heading h2{font-size:clamp(27px,3vw,36px);margin-bottom:12px}.lead-section .center-heading p:not(.eyebrow){font-size:14px}.lead-form{max-width:680px!important;background:#fff;padding:28px;border:1px solid #e5dfd4;border-radius:14px;box-shadow:0 8px 28px #25201506}.lead-form .lead-grid{gap:14px 18px}.lead-form label{font-size:13px;gap:6px}.lead-form input,.lead-form select,.lead-form textarea{padding:9px 11px;min-height:42px}.lead-form textarea{height:76px;min-height:76px}.lead-form .lead-note{font-size:12px;margin:16px 0}.lead-form .btn{padding:11px 18px;min-height:44px}.floating-consultant{position:fixed;right:24px;bottom:22px;z-index:80;background:#212c25;color:#fff;padding:15px 22px;border:1px solid #b39764;border-radius:30px;font:500 14px/1.4 var(--sans);box-shadow:0 5px 22px #0003;max-width:calc(100vw - 40px);text-align:center}.floating-consultant[hidden]{display:none}.floating-consultant:focus-visible{outline:3px solid #b39764;outline-offset:4px}.exit-dialog{box-sizing:border-box;width:calc(100% - 40px);max-width:470px;padding:40px 32px 28px;border:1px solid #d8c9ab;border-radius:16px;color:#20241f;background:#faf8f3;box-shadow:0 20px 80px #0003}.exit-dialog::backdrop{background:#10181299}.exit-dialog h2{font:400 clamp(26px,4vw,34px)/1.25 var(--serif);margin:14px 0}.exit-dialog>p:not(.eyebrow){font:400 15px/1.8 var(--sans);color:#555}.exit-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:29px;width:44px;height:44px;cursor:pointer}.exit-dialog .btn{white-space:normal;width:100%;margin-top:12px;box-sizing:border-box}.exit-dismiss{display:block;margin:18px auto 0;border:0;background:transparent;text-decoration:underline;font:400 13px var(--sans);cursor:pointer;min-height:36px}.exit-dialog button:focus-visible{outline:2px solid #94723f;outline-offset:2px}@media(max-width:620px){.lead-section{padding:40px 0!important}.lead-form{padding:20px 16px}.lead-form .lead-grid{gap:13px}.floating-consultant{right:16px;bottom:16px;font-size:13px;padding:13px 18px}.exit-dialog{padding:36px 24px 24px}}
.article{max-width:800px}.article .article-lead{font-size:20px;line-height:1.75;color:#353c36}.article h2{margin-top:48px;font-size:clamp(26px,3vw,35px)}.article p,.article li{font-size:16px;line-height:1.9}.article a{color:#795c2d;text-decoration:underline;text-underline-offset:4px}.article-callout{padding:28px 32px;background:#f4eee2;border-left:3px solid #b39764;border-radius:0 12px 12px 0;margin:34px 0}.article-callout p{margin:10px 0 0;color:#403c32}.article-sage{background:#edf1ec;border-color:#69806e}.article-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0}.article-comparison section{padding:24px;background:#f8f7f4;border:1px solid #e5dfd4;border-radius:12px}.article-comparison h3{margin-top:0}.article-checklist{padding:24px 28px 24px 48px;background:#f8f7f4;border-radius:12px}.article-source{border-top:1px solid #ded9d0;margin-top:40px;padding-top:16px}.article-source p{font-size:13px}.article code{overflow-wrap:anywhere}@media(max-width:620px){.article-comparison{grid-template-columns:1fr}.article-callout{padding:22px}.article .article-lead{font-size:18px}}
.lead-section{background:#f8f7f4;color:#141414}.lead-form{max-width:820px;margin:0 auto}.lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.lead-form label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}.lead-form input,.lead-form select,.lead-form textarea{width:100%;min-width:0;padding:13px 14px;border:1px solid #cfc7b9;border-radius:5px;background:#fff;color:#222;font:400 16px/1.5 var(--sans);box-sizing:border-box}.lead-form textarea{resize:vertical}.lead-form :is(input,select,textarea):focus-visible{outline:2px solid #94723f;outline-offset:3px}.lead-wide{grid-column:1/-1}.lead-form .lead-note{font-size:13px;color:#666;line-height:1.7;margin:24px 0}.lead-form button{cursor:pointer;border:0;min-height:48px}.lead-form .btn{white-space:normal}@media(max-width:620px){.lead-grid{grid-template-columns:1fr}.lead-wide{grid-column:auto}.lead-form button{width:100%}}
:root{--sans:'DM Sans',Arial,sans-serif;--serif:'Playfair Display',Georgia,serif;--gold:#b39764;--gold-light:#d6c29e;--cream:#f8f7f4}
body{font-size:16px;line-height:1.65}
.brand-subtitle{letter-spacing:1.6px;font-size:9px}
.header-wrap{min-height:88px}.nav a{font-size:13px;font-weight:400}
.hero-orbit,.corner,.vertical-caption,.scroll-cue,.service-mark,.photo-outline,.card-number,.tile .num,.process-step>span,.feature-list b{display:none}
.hero{min-height:650px;background:#111211}.hero-grid{padding:64px 0 80px;gap:80px}
.hero h1{font-size:clamp(42px,4.5vw,66px);line-height:1.15;letter-spacing:-1.8px;font-weight:400}
.hero h1 i{font-style:normal;color:#d6c29e}.hero-lead{font-family:var(--sans);font-size:20px;line-height:1.55;max-width:450px}
.hero-desc{font-size:15px;line-height:1.8;color:#bcbdb8}.hero-meta{letter-spacing:1px;line-height:1.7;margin-top:30px}
.hero-visual{min-height:500px}.portrait-hero{display:block;width:100%;height:500px;object-fit:contain;object-position:center bottom}
.eyebrow{font-size:11px;letter-spacing:1.4px;font-weight:500}
.section,.page-section{padding:88px 0}.section h2,.page-section h2,.page-hero h1,.cta-section h2,.internal-cta h2{font-family:var(--serif);font-weight:400;letter-spacing:-.9px;line-height:1.25}
.section h2{font-size:clamp(30px,3vw,43px)}
.section h2 em,.cta-section h2 em,.page-hero h1 em,.page-section h2 em,.internal-cta h2 em{font-style:normal;color:inherit}
.section-copy p:not(.eyebrow),.section-heading>p:not(.eyebrow),.page-section p,.intro{font-size:16px;line-height:1.85}
.section-heading{max-width:700px;margin-bottom:42px}.split{gap:72px}
.photo-placeholder,.abstract-placeholder,.space-image{padding:0;background:#efede7;border:0;overflow:hidden}
.editorial-photo{display:block;width:100%;height:100%;object-fit:cover;letter-spacing:normal}
.photo-placeholder{height:500px}.abstract-placeholder{height:470px}.space-image{min-height:380px}
.service-card,.segment,.tile{border:0;border-top:1px solid #d7d1c5;background:transparent;padding:26px 6px;box-shadow:none!important;transform:none!important}
.service-card{min-height:255px}.service-card h3,.segment h3,.tile h3,.process-step h3,.blog-card h3,.project-card h3{font-family:var(--sans);font-size:20px;letter-spacing:-.35px;font-weight:500;line-height:1.4}
.service-card p,.segment p,.project-card p,.blog-card p,.process-step p{font-size:15px;line-height:1.8}
.service-card a{font-size:13px;bottom:15px}.segment{min-height:155px}.segment h3{margin-top:12px}
.segment>span,.blog-card>span,.project-card>span{font-size:10px;letter-spacing:1px}
.feature-list>div{gap:0}.feature-list strong{font-size:16px;font-weight:500}.feature-list small{font-size:14px}
.process-grid{border-top:0;gap:32px}.process-step{border-top:1px solid #454238;padding-top:22px}
.project-image,.blog-thumb{padding:0;border:0;overflow:hidden;background:#eee;letter-spacing:normal}.project-image{height:240px}.blog-thumb{height:220px}
.cta-section{background:#141513;padding:90px 0}.cta-section h2{font-size:clamp(32px,3.6vw,48px)}
.btn{font-size:13px;font-weight:500;border-radius:0;box-shadow:none!important;padding:14px 22px;letter-spacing:.1px}
.btn:hover{transform:none}.btn-gold{background:#c5ae82}.text-link{font-size:13px;font-weight:500}
.footer p,.footer a:not(.brand){font-size:13px}.footer h3{letter-spacing:1px;font-weight:500}
.page-hero h1{font-size:clamp(36px,4vw,58px)}.page-hero{padding:70px 0}.js-motion .reveal{transition-duration:.45s}
@media(max-width:760px){.container{width:calc(100% - 40px)}.hero-grid{gap:28px;padding:42px 0 0}.hero h1{font-size:43px;letter-spacing:-1.3px}.hero-lead{font-size:18px}.hero-visual{min-height:330px}.portrait-hero{height:360px}.hero-meta{font-size:9px;gap:12px}.section,.page-section{padding:60px 0}.split{gap:32px}.photo-placeholder{height:390px}.abstract-placeholder{height:300px}.service-card{min-height:240px}.service-card h3{font-size:19px}.service-card p{font-size:14px}.section h2{font-size:32px}.blog-thumb{height:230px}.process-grid{gap:22px}.page-hero{padding:48px 0}.header-wrap{min-height:76px}.footer-grid{gap:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Anchor the portrait to the hero edge instead of leaving it suspended. */
.hero{min-height:0}.hero-grid{align-items:end;padding-top:50px;padding-bottom:0}
.hero-copy{align-self:center;padding-bottom:58px}.hero-visual{align-self:end;min-height:0;display:flex;align-items:flex-end}
.portrait-hero{height:560px;width:100%;object-fit:contain;object-position:center bottom}
.services-ribbon{display:flex;align-items:center;gap:18px;background:#c5ae82;color:#191a18;padding:19px 24px;border:0}
.ribbon-window{flex:1;min-width:0;overflow:hidden}.ribbon-track{display:flex;width:max-content;animation:services-scroll 38s linear infinite}
.ribbon-group{display:flex;align-items:center;flex-shrink:0}.ribbon-group span{display:flex;align-items:center;gap:42px;padding-right:42px;white-space:nowrap;font-size:15px;letter-spacing:.2px;font-weight:400}
.ribbon-group span::after{content:'·';font-size:20px;color:#53462f}
.ribbon-toggle{flex-shrink:0;background:transparent;border:1px solid #776440;color:#262219;padding:7px 12px;font-size:12px;cursor:pointer}
.services-ribbon:hover .ribbon-track,.services-ribbon:focus-within .ribbon-track,.services-ribbon.is-paused .ribbon-track{animation-play-state:paused}
@keyframes services-scroll{to{transform:translateX(-50%)}}
@media(max-width:760px){.hero-grid{padding-top:36px;padding-bottom:0;gap:10px}.hero-copy{padding-bottom:12px}.hero-visual{width:100%;justify-content:center}.portrait-hero{height:360px;width:auto;max-width:100%}.services-ribbon{padding:14px 16px;gap:12px}.ribbon-group span{font-size:13px;gap:24px;padding-right:24px}.ribbon-toggle{padding:6px 9px}}
@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none;transform:none;width:100%}.ribbon-group{flex-wrap:wrap;gap:12px 0}.ribbon-group span{white-space:normal}.ribbon-group[aria-hidden]{display:none}.ribbon-toggle{display:none}.ribbon-window{overflow:visible}}
.photo-placeholder,.abstract-placeholder,.space-image,.blog-thumb,.project-image{border-radius:14px;box-shadow:0 12px 32px rgba(28,25,18,.09)}
.editorial-photo{border-radius:inherit}
.services-ribbon{--service-width:240px}
.ribbon-group span{width:var(--service-width);justify-content:space-between;gap:16px;padding-right:32px;font-weight:700}
.ribbon-track{animation:services-scroll 32s linear infinite;will-change:transform}
.services-ribbon:hover .ribbon-track,.services-ribbon:focus-within .ribbon-track{animation-play-state:running}
.services-ribbon.is-paused .ribbon-track{animation-play-state:paused!important}
@keyframes services-rhythm{
  0%,10%{transform:translateX(0)}
  16.6667%,26.6667%{transform:translateX(calc(var(--service-width) * -1))}
  33.3333%,43.3333%{transform:translateX(calc(var(--service-width) * -2))}
  50%,60%{transform:translateX(calc(var(--service-width) * -3))}
  66.6667%,76.6667%{transform:translateX(calc(var(--service-width) * -4))}
  83.3333%,93.3333%{transform:translateX(calc(var(--service-width) * -5))}
  100%{transform:translateX(calc(var(--service-width) * -6))}
}
@media(max-width:760px){.services-ribbon{--service-width:200px}}
@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none}.ribbon-group span{width:auto}}
@media(prefers-reduced-motion:reduce){.ribbon-group{width:100%;min-width:0;flex-shrink:1}.ribbon-group span{max-width:100%;font-size:13px;padding-right:18px;gap:18px}}
@media(max-width:760px){.photo-placeholder,.abstract-placeholder,.space-image,.blog-thumb,.project-image{border-radius:11px;box-shadow:0 8px 22px rgba(28,25,18,.08)}}

/* Cards: quiet borders, editorial spacing, and a restrained gold accent. */
.services-grid{gap:22px}.service-card,.segment,.tile{background:#fff;border:1px solid #e5e0d7;border-radius:12px;padding:30px 26px;box-shadow:0 5px 18px rgba(36,29,15,.035)!important;transition:border-color .25s,box-shadow .25s,transform .25s}
.service-card{min-height:300px;padding-top:36px;padding-bottom:68px;position:relative;overflow:hidden}
.service-card::before{content:'';position:absolute;top:0;left:26px;width:34px;height:3px;background:#b39764;border-radius:0 0 2px 2px}
.service-card h3,.segment h3,.tile h3{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1.3;letter-spacing:-.45px;margin-top:4px;margin-bottom:15px}
.service-card p,.segment p,.tile p{color:#69685f;font-size:14px;line-height:1.85}
.service-card a{left:26px;right:26px;bottom:24px;padding-top:15px;border-top:1px solid #eee9e0;display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:#796039}
.segment{min-height:195px;padding:27px 25px}.segment>span{color:#947749;font-size:10px;letter-spacing:1.3px}.segment h3{margin-top:18px;font-size:22px}
.tile{padding:30px}.tile h3{font-size:23px}.tile .num{display:none}
.blog-card{background:#fff;border:1px solid #e8e3da;border-radius:14px;overflow:hidden;padding:0 0 26px;box-shadow:0 5px 20px rgba(36,29,15,.035);transition:box-shadow .25s,border-color .25s}
.blog-card .blog-thumb{border-radius:0;box-shadow:none;margin-bottom:24px;height:215px}
.blog-card>span,.blog-card>h3,.blog-card>p,.blog-card>.text-link{margin-left:24px;margin-right:24px}
.blog-card h3{font-family:var(--serif);font-size:23px;line-height:1.4;font-weight:400}.blog-card p{font-size:14px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.service-card:hover,.segment:hover,.tile:hover{border-color:#c7af83;box-shadow:0 14px 30px rgba(36,29,15,.075)!important;transform:translateY(-3px)!important}.blog-card:hover{border-color:#c7af83;box-shadow:0 14px 30px rgba(36,29,15,.075)}}
.service-card:focus-within,.segment:focus-within,.tile:focus-within,.blog-card:focus-within{border-color:#ac8b52}
.hero h1 i,.section h2 em,.cta-section h2 em,.page-hero h1 em,.page-section h2 em,.internal-cta h2 em{font-style:italic;color:var(--gold-light)}
.section:not(.dark) h2 em,.page-section:not(.dark) h2 em{color:#94723f}
.hero-lead{font-family:var(--serif);font-size:23px;line-height:1.5}
.ui-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}
.btn,.text-link,.tile a,.links-simple a{gap:12px}
.text-link,.tile a,.links-simple a{display:inline-flex;align-items:center}
.btn .ui-icon,.text-link .ui-icon,.service-card a .ui-icon{transition:transform .2s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){a:hover>.ui-icon.icon-arrow,a:hover>span>.ui-icon.icon-arrow{transform:translateX(3px)}}
.service-card .service-mark{display:flex;align-items:center;color:#94723f;margin:0 0 20px;width:36px;height:36px;background:none;border:0}
.service-mark .ui-icon{width:30px;height:30px}
.service-card{min-height:340px}
.menu-toggle .ui-icon{width:24px;height:24px}
.list-gold li::before{content:'';width:6px;height:6px;border:1px solid #a38653;border-radius:50%;top:23px}
@media(max-width:760px){.service-card{min-height:280px;padding:29px 22px 64px}.service-card::before{left:22px}.service-card a{left:22px;right:22px}.service-card h3,.segment h3,.tile h3{font-size:22px}.segment{min-height:175px;padding:24px}.blog-card{padding-bottom:22px}.blog-card .blog-thumb{height:215px}}

/* Responsive image proportions and a continuous, automatic services ribbon. */
.hero-visual{justify-content:center;min-width:0}
.portrait-hero{width:100%;max-width:480px;height:clamp(380px,38vw,510px);object-fit:contain;object-position:center bottom}
.photo-placeholder,.abstract-placeholder,.space-image{width:100%;height:auto;min-height:0;aspect-ratio:4/3;max-height:440px}
.photo-placeholder .editorial-photo,.abstract-placeholder .editorial-photo,.space-image .editorial-photo{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center}
.blog-card .blog-thumb{height:auto;aspect-ratio:16/10}
.blog-thumb .editorial-photo{height:100%;width:100%;object-fit:cover}
.ribbon-group span{width:auto;min-width:0;gap:32px;padding-right:32px;font-size:14px;font-weight:500;letter-spacing:.4px}
.ribbon-window{mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)}
.services-ribbon:focus-within .ribbon-track{animation-play-state:running}
@media(max-width:760px){
 .portrait-hero{height:350px;max-width:360px;width:100%}
 .photo-placeholder,.abstract-placeholder,.space-image{aspect-ratio:4/3;max-height:360px}
 .blog-card .blog-thumb{height:auto;aspect-ratio:16/10}
 .ribbon-group span{font-size:13px;gap:24px;padding-right:24px}
 .ribbon-track{animation-duration:26s}
}
@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none;will-change:auto}.ribbon-window{mask-image:none}.ribbon-group span{padding-right:18px;gap:18px}}

/* Portraits retain the whole image rather than using a landscape crop. */
.photo-placeholder,.space-image{aspect-ratio:auto;max-height:none;height:auto;min-height:0;display:block;max-width:460px;margin-inline:auto}
.photo-placeholder .editorial-photo,.space-image .editorial-photo{height:auto;width:100%;object-fit:contain;aspect-ratio:820/1025}
.abstract-placeholder{aspect-ratio:auto;max-height:none;height:auto;min-height:0}
.abstract-placeholder .editorial-photo{height:auto;object-fit:contain}
.blog-card .blog-thumb{aspect-ratio:auto;height:auto}
.blog-thumb .editorial-photo{width:100%;height:auto;object-fit:contain}
.services-ribbon .ribbon-track{animation:services-scroll 32s linear infinite;animation-play-state:running;width:max-content;will-change:transform}
.services-ribbon .ribbon-group{flex-wrap:nowrap;flex-shrink:0;width:auto;min-width:0}
.services-ribbon .ribbon-group span{max-width:none;white-space:nowrap;flex-shrink:0}
.services-ribbon .ribbon-group[aria-hidden]{display:flex}
.services-ribbon .ribbon-window{overflow:hidden;min-width:0}
.services-ribbon .ribbon-toggle{display:block}
.services-ribbon.is-paused .ribbon-track{animation-play-state:paused}
@media(max-width:760px){.photo-placeholder,.space-image{max-width:380px}.services-ribbon .ribbon-track{animation-duration:26s}}
@media(prefers-reduced-motion:reduce){.services-ribbon .ribbon-track{animation:services-scroll 65s linear infinite!important}.services-ribbon.is-paused .ribbon-track{animation-play-state:paused!important}}
