@charset "UTF-8";
/* Paper, celadon and aged bronze. */
:root{--bronze:#806044;--celadon:#40636a;--warm-paper:#f8f5ef}
html{scroll-padding-top:112px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--warm-paper);overflow-wrap:break-word}
.header .nav{gap:5px;align-items:center}
.header .nav a{height:auto;min-height:44px;padding:10px 13px;border:1px solid transparent;border-radius:4px;transition:transform .2s,background .2s,color .2s,box-shadow .2s}
.header .nav a:after{display:none}
.header .nav a.active{background:#e9decc;color:#604329;border-color:#d4bea0;box-shadow:inset 0 -2px #ab8053}
@media(hover:hover){.header .nav a:hover{background:#efe5d6;color:#604329;transform:translateY(-3px);box-shadow:0 5px 12px #80604418}.contact-toggle:hover{background:#31535a}}
a:focus-visible,button:focus-visible{outline:2px solid #9b6c3f;outline-offset:4px}
.header{box-shadow:0 3px 18px #33271905}.section-label{color:var(--bronze)}.section-label:before{background:var(--bronze)}
.project-card,.site-item,.service-row>div,.contact-grid>div,.footer-top>div{min-width:0}
.project-meta h3,.news-row h3{overflow-wrap:anywhere}.project-meta p{line-height:1.9}
.contact-band{background:#4c6461}.contact-band .wrap{gap:24px}.contact-band .section-label{margin:0;color:#f1e6d3;font-size:16px}
.contact-details{margin-top:28px}.contact-detail{grid-template-columns:80px minmax(0,1fr);padding:17px 0}.contact-detail dt{color:#796b58}.contact-detail dd{line-height:1.8}.contact-detail:first-child a{color:#795432;font-size:24px;font-family:"Yuan Serif",serif;letter-spacing:1px}
.contact-actions{flex-wrap:wrap;gap:12px}.contact-feature{border-radius:3px}.article-body{line-height:2.1}.article-body p{overflow-wrap:anywhere}
.contact-widget{position:fixed;z-index:35;right:22px;bottom:84px;width:218px;font-family:"Yuan Sans",sans-serif}
.contact-panel{position:relative;background:#fffdf8;border:1px solid #ded4c1;border-radius:12px;box-shadow:0 12px 38px #283f3b26;padding:24px 17px 8px;text-align:center}
.contact-panel[hidden]{display:none}.contact-panel>img{width:136px;height:65px;object-fit:contain;display:block;margin:0 auto;background:transparent}
.contact-caption{font-size:11px;letter-spacing:2px;color:#7b705e;margin:9px 0 18px}.contact-call{background:#edf2f1;border:1px solid #dbe5e1;border-radius:7px;padding:13px 4px;color:#365b62}.contact-call>span{display:block;font-size:12px;letter-spacing:2px}.contact-call>a{display:block;font:600 20px/1.7 "Yuan Serif",serif;white-space:nowrap;min-height:36px}.wechat-copy{background:none;border:0;color:#67533b;font-size:12px;min-height:44px;width:100%;cursor:pointer}.contact-more{border-top:1px solid #e7dfd0;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#71634f;min-height:44px}.contact-dismiss{position:absolute;top:0;right:0;width:38px;height:38px;border:0;background:none;color:#756d62;font-size:22px;cursor:pointer}.contact-toggle{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;background:var(--celadon);color:white;border:1px solid #688286;border-radius:25px;padding:10px 16px;font-size:13px;box-shadow:0 5px 18px #24464920;cursor:pointer;float:right}.contact-toggle>span{font-size:22px;line-height:1}.expanded .contact-toggle{display:none}.contact-widget:not(.expanded) .contact-panel{display:none}
.back-top{right:24px;bottom:24px;z-index:30}.toast{z-index:120}
.footer{background:#ebe6db;color:#37463f;border-top:1px solid #d5cbb9}.footer p,.footer .footer-bottom{color:#655f52}.footer-bottom{border-color:#cfc4b3}.footer a:hover{color:#795432}.footer-phone{color:#4c635e}.contact-panel{max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);overflow-y:auto;overscroll-behavior:contain}
@media(min-width:1001px) and (max-width:1250px){.header-inner{gap:15px}.header .nav a{padding:10px 8px;font-size:13px}.header .brand-logo{width:148px}}
@media(max-width:1100px){.contact-widget{width:218px;right:16px;bottom:80px;bottom:calc(80px + env(safe-area-inset-bottom,0px))}.expanded .contact-toggle{display:flex;margin-top:10px}.contact-panel{margin-bottom:10px}.contact-widget.expanded{width:min(260px,calc(100vw - 32px))}.contact-dismiss{width:44px;height:44px}.contact-call>a{font-size:23px;min-height:44px}.contact-more,.wechat-copy{font-size:13px;min-height:44px}.back-top{right:20px;bottom:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px))}}
@media(max-width:1000px){.header .nav{gap:8px;padding:18px 24px;border-bottom:1px solid #dacdb8;max-height:calc(100vh - 90px);overflow-y:auto}.header .nav a{min-height:48px}.menu-toggle{min-width:68px;min-height:44px;border:1px solid #d9ccb5;border-radius:4px;color:#654c32;background:#f4eee3}.hero-heading h1{font-size:clamp(36px,6.2vw,62px)}}
@media(max-width:680px){
 html{scroll-padding-top:88px}.wrap{width:calc(100% - 40px)}.header{height:78px}.header-inner{gap:12px}.header .nav{padding:16px 20px}.header .brand-logo{width:127px;height:61px}
 .heritage-hero{height:610px;height:clamp(510px,82svh,660px)}.hero-heading{top:40px;padding:0 20px}.hero-heading h1{white-space:normal;font-size:clamp(32px,8.2vw,46px);letter-spacing:2px;line-height:1.5}.hero-heading h1 span{font-size:.56em;margin:0 3px}.hero-overline{font-size:12px;letter-spacing:4px}.hero-heading p{font-size:13px;line-height:2;max-width:290px}.hero-link{min-height:44px;gap:22px}.heritage-hero .hero-photo{object-position:53% bottom}
 .section{padding:56px 0}.prologue-grid{gap:25px}.vertical-title h2{font-size:clamp(28px,7.8vw,35px);letter-spacing:2px}.prologue-copy h3{font-size:23px}.prologue-copy p,.about-lead p,.service-row p{font-size:15px;line-height:2}
 .service-tile{height:270px}.tile-title{font-size:24px;letter-spacing:2px}.tile-line{line-height:1.65}.selected-grid .feature img{height:310px}.selected-grid>.project-card:not(.feature) .project-image img{height:235px}.project-meta h3{font-size:24px;letter-spacing:1px}.project-meta p{font-size:13px}.project-meta .round-arrow{width:40px;height:40px}
 .craft-copy{padding:38px 20px 44px}.craft-copy h2{font-size:31px;letter-spacing:3px}.craft-values{gap:24px 18px}.craft-values h3{font-size:21px}.craft-values p{font-size:14px}.craft-photo img{height:275px}
 .inner-hero{min-height:275px;padding:28px 0 35px}.inner-hero h1{font-size:34px;letter-spacing:4px}.inner-hero p{line-height:1.9}.inner-hero .breadcrumbs{margin-bottom:20px}.inner-photo{width:100%;opacity:.22}.page-content{padding-top:34px;padding-bottom:56px}
 .inner-hero .wrap,.project-detail aside,.article{overflow-wrap:anywhere}.project-detail h1,.article h1{font-size:28px;line-height:1.6;letter-spacing:1px}.article-body{font-size:16px;line-height:2}.article-meta{font-size:12px}
 .service-index{gap:8px 18px}.service-index a{min-height:44px;display:flex;align-items:center}.service-row{gap:25px;scroll-margin-top:88px}.filters{gap:12px 24px;flex-wrap:wrap}.filters button{min-height:44px}.news-row{gap:12px;grid-template-columns:49px minmax(0,1fr) 14px}.article-list .news-row{grid-template-columns:49px minmax(0,1fr) 14px;gap:12px}
 .contact-grid{gap:32px}.contact-grid h2{font-size:25px;letter-spacing:1px}.contact-detail{grid-template-columns:70px minmax(0,1fr);gap:12px}.contact-detail dd{font-size:15px}.contact-detail:first-child a{font-size:23px}.contact-actions{display:grid;grid-template-columns:1fr}.contact-actions .button{justify-content:space-between}.contact-feature{min-height:350px;padding:25px}.contact-feature h3{font-size:31px}.contact-band{padding:32px 0}.contact-band .button{margin-top:20px}.contact-band .section-label{font-size:14px;letter-spacing:2px}
 .footer{padding-bottom:105px}.footer-links{grid-template-columns:repeat(2,1fr);gap:4px 16px}.footer-links a{min-height:44px;display:flex;align-items:center;font-size:14px}.footer-contact p{font-size:13px}.footer-phone{font-size:26px}.footer-bottom{line-height:1.9}.sitemap-grid{grid-template-columns:minmax(0,1fr);gap:25px}.sitemap-grid a{display:inline-block;padding:6px 0}.dialog{max-width:calc(100vw - 24px)}
}
@media(max-width:359px){.wrap{width:calc(100% - 32px)}.hero-heading{padding:0 12px}.hero-heading h1{font-size:31px;letter-spacing:1px}.tile-line{font-size:11px;left:12px;right:10px}.craft-copy h2{font-size:28px}.site-item>p{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Home navigation keeps the same quiet appearance as ordinary text. */
.header .nav a[href="/"],.header .nav a[href="/"].active,.header .nav a[href="/"]:hover{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink)}

/* Mobile contact bar: supplied reference translated into the Yuanjing palette. */
.mobile-contact-dock{display:none}
@media(max-width:680px){
 body{padding-bottom:94px;padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
 .contact-widget{display:none}
 .mobile-contact-dock{position:fixed;z-index:35;left:12px;right:12px;bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:76px minmax(0,1fr) 44px;align-items:center;gap:12px;padding:7px 12px;min-height:72px;background:linear-gradient(110deg,#fffefa,#f5f9f7);border:1px solid #d1ded5;border-radius:15px;box-shadow:0 5px 22px #1e403a1f}
 .mobile-contact-dock:before{content:"";position:absolute;top:0;left:18px;right:18px;height:3px;background:linear-gradient(90deg,#416e81 0 55%,#99ab72 55% 100%);border-radius:0 0 3px 3px}
 .mobile-contact-logo{width:76px;height:43px;object-fit:contain;background:transparent}
 .mobile-contact-info{min-width:0;border-left:1px solid #dce6df;padding-left:12px}
 .mobile-contact-label{display:flex;align-items:center;height:28px;font-size:13px;letter-spacing:1px;color:#617574;white-space:nowrap}
 .mobile-wechat-copy{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:28px;min-width:52px;padding:0 3px;border:0;background:none;color:#426957;font-size:13px;letter-spacing:1px}
 .mobile-contact-number{display:flex;align-items:center;min-height:28px;font:700 clamp(17px,4.9vw,23px)/1.2 "Yuan Sans",sans-serif,"Yuan Sans",sans-serif;letter-spacing:.1px;color:#2e667b;white-space:nowrap}
 .mobile-contact-dial{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:44px;min-height:56px;color:#496444;font-size:12px;line-height:1.4}
 .mobile-dial-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e6eed8;color:#537547;font:25px/1 "Yuan Sans",sans-serif}
 .back-top{bottom:104px;bottom:calc(104px + env(safe-area-inset-bottom,0px));right:16px}
 .toast{bottom:111px;bottom:calc(111px + env(safe-area-inset-bottom,0px))}
 .footer{padding-bottom:28px}
}
@media(max-width:359px){
 .mobile-contact-dock{left:8px;right:8px;bottom:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));grid-template-columns:60px minmax(0,1fr) 40px;gap:8px;padding:7px 10px}
 .mobile-contact-logo{width:60px;height:38px}.mobile-contact-info{padding-left:8px}.mobile-contact-number{font-size:17px}.mobile-contact-label,.mobile-wechat-copy{font-size:12px}
}

/* Plain home link, including legacy generated navigation. */
.header .nav a.nav-home,.header .nav a.nav-home:hover,.header .nav a[href="/"],.header .nav a[href="/"].active,.header .nav a[href="/"]:hover,.header .nav a[href="index.html"],.header .nav a[href="/index.html"]{background:transparent;border-color:transparent;box-shadow:none;transform:none;color:var(--ink)}
.header .nav a.nav-home:after,.header .nav a[href="/"]:after{display:none}

/* Quiet editorial section captions, without chapter numbers. */
.section-label{font:500 15px/1.7 var(--serif);letter-spacing:2px;color:#7d654a;margin-bottom:13px}
.section-label:before{width:2px;height:13px;background:#ac9270;margin-right:10px;vertical-align:-1px}
.section-head h2{font-size:38px;letter-spacing:2px;line-height:1.55}
.vertical-title>span{font-size:14px;letter-spacing:3px;color:#7d654a}
.craft-copy .section-label{color:#deceb3}.craft-copy .section-label:before{background:#beaa85}
@media(max-width:680px){.section-label{font-size:14px;letter-spacing:2px;margin-bottom:10px}.section-head h2{font-size:28px;letter-spacing:1px}.vertical-title>span{font-size:14px;letter-spacing:2px}}

/* Keep the mobile home introduction on one complete line. */
@media(max-width:680px){
 .hero-heading p{width:100%;max-width:none;font-size:clamp(11.5px,3.3vw,14px);letter-spacing:0;white-space:nowrap;line-height:1.9}
}

/* Case details: image, readable introduction, and onward browsing. */
.case-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin:6px 0 38px;padding-bottom:30px;border-bottom:1px solid #d9cfbe}
.case-heading h1{font:42px/1.45 var(--serif);letter-spacing:3px;margin:0 0 13px;overflow-wrap:anywhere}.case-heading p{color:#766d60;font-size:14px;line-height:1.9}.case-heading>.text-link{flex-shrink:0;margin-bottom:6px}
.case-overview{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:38px;align-items:start}.case-photograph{margin:0;min-width:0;background:#ede8df;border:1px solid #e0d8ca}.case-photograph>img{width:100%;height:auto;max-height:650px;object-fit:contain}.case-photograph figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px 20px;font:14px/1.8 var(--serif);color:#6d6252;letter-spacing:1px}.case-photograph figcaption span:last-child{color:#8c775d}
.case-introduction{min-width:0;background:#fffdf7;border:1px solid #e3d9c8;padding:32px}.case-introduction h2{font-size:27px;line-height:1.6;letter-spacing:2px;margin-bottom:22px}.case-description{font-size:15px;line-height:2.1;color:#5e6258;overflow-wrap:anywhere}.case-description p{margin:0 0 17px}.case-description h2{font-size:23px;margin-top:20px}.case-facts{margin:26px 0 0;border-top:1px solid #e4dbcf;padding-top:18px}.case-facts>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;font-size:13px}.case-facts dt{color:#83715b}.case-facts dd{margin:0;color:#4f6056}
.case-contact{margin-top:24px;padding-top:22px;border-top:1px solid #e4dbcf}.case-contact>p{font-size:13px;color:#7a705d}.case-phone{display:block;font:25px/1.8 "Yuan Serif",serif;color:#416775;letter-spacing:.5px;margin:5px 0 15px}.case-contact .button{width:100%;justify-content:space-between;border-color:#8e9f92;color:#416351}.case-contact .button:hover{background:#416351;color:white}
.case-neighbors{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid #ded5c6;border-bottom:1px solid #ded5c6;margin-top:48px;padding:24px 0}.case-neighbors>a{min-width:0;padding:5px 0}.case-neighbors span{display:block;font-size:12px;color:#8a755a;margin-bottom:9px}.case-neighbors strong{font:22px/1.6 var(--serif);letter-spacing:1px;overflow-wrap:anywhere}.case-neighbors .case-next{grid-column:2;text-align:right}.case-neighbors a:hover strong{color:#8f5f3c}
.case-related{padding-top:60px;scroll-margin-top:115px}.case-related .section-head{margin-bottom:30px}.case-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.case-related .project-image img{height:240px;object-fit:cover}.case-related .project-meta h3{font-size:23px;letter-spacing:1px}.case-related .project-meta p{font-size:13px;line-height:1.8}.case-related .project-category{top:12px;left:12px}.case-return{margin-top:38px}
@media(max-width:1000px){.case-overview{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px}.case-introduction{padding:24px}.case-heading h1{font-size:36px}.case-related-grid{gap:20px}.case-related .project-image img{height:190px}.case-related .project-meta{gap:10px}.case-related .project-meta h3{font-size:21px}.case-related .round-arrow{width:32px;height:32px}}
@media(max-width:680px){.case-heading{display:block;margin-bottom:26px;padding-bottom:22px}.case-heading h1{font-size:30px;letter-spacing:2px}.case-heading p{font-size:13px}.case-heading>.text-link{margin:18px 0 0;min-height:36px}.case-overview{grid-template-columns:minmax(0,1fr);gap:24px}.case-photograph>img{max-height:540px}.case-photograph figcaption{font-size:12px;padding:12px 14px;gap:12px}.case-introduction{padding:25px 22px}.case-introduction h2{font-size:25px;margin-bottom:16px}.case-facts{margin-top:20px}.case-contact{margin-top:20px}.case-neighbors{gap:20px;margin-top:30px;padding:18px 0}.case-neighbors strong{font-size:19px}.case-related{padding-top:40px;scroll-margin-top:94px}.case-related .section-head{display:flex;align-items:end;gap:12px}.case-related .section-head h2{font-size:27px}.case-related .section-head>.text-link{font-size:12px;white-space:nowrap}.case-related-grid{grid-template-columns:minmax(0,1fr);gap:30px}.case-related .project-image img{height:auto;aspect-ratio:4/3;object-fit:cover}.case-related .project-meta h3{font-size:24px}.case-related .round-arrow{width:40px;height:40px}.case-return{margin-top:30px}}
/* Article continuation: quiet borders, readable titles and related stories. */
.article-reading{margin:44px 0 38px}
.article-neighbors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #d9cfbe;border-bottom:1px solid #d9cfbe;padding:24px 0;gap:28px}
.article-neighbor{display:block;min-width:0;padding:6px 0}
.article-neighbor:nth-child(2){border-left:1px solid #e0d7c9;padding-left:28px}
.article-neighbor>span{display:block;font-size:13px;letter-spacing:2px;color:#8a7154;margin-bottom:10px}
.article-neighbor strong{font:21px/1.7 var(--serif);overflow-wrap:anywhere;letter-spacing:.5px}
.article-neighbor:hover strong{color:#86633e}.article-neighbor.is-empty p{font-size:14px;color:#8c8b82;margin:0}
.article-related{margin-top:42px}.article-related-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}
.article-related-heading h2{font:30px/1.5 var(--serif);letter-spacing:2px;margin:0}.article-related-heading>.text-link{font-size:13px;flex-shrink:0}
.article-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.article-related-card{display:flex;flex-direction:column;min-width:0;background:#fcfaf5;border:1px solid #e0d7c9;transition:border-color .2s}
.article-related-card:hover{border-color:#9d896b}.article-related-image{aspect-ratio:16/10;overflow:hidden;background:#eae5da}
.article-related-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.article-related-card:hover img{transform:scale(1.025)}
.article-related-copy{padding:18px;display:flex;flex-direction:column;flex:1;align-items:flex-start}.article-related-copy time{font-size:12px;color:#8c7b61}
.article-related-copy h3{font:21px/1.6 var(--serif);margin:9px 0 10px;overflow-wrap:anywhere}
.article-related-copy p{font-size:13px;line-height:1.9;color:#7c7d70;margin:0 0 18px;overflow-wrap:anywhere}
.article-read-more{margin-top:auto;font-size:12px;letter-spacing:1px;color:#5b7164;padding-top:6px}
.article-neighbor:focus-visible,.article-related-card:focus-visible{outline:2px solid #537d77;outline-offset:5px}
@media(max-width:680px){.article-reading{margin:32px 0}.article-neighbors{grid-template-columns:minmax(0,1fr);gap:0;padding:8px 0}.article-neighbor{padding:18px 0}.article-neighbor:nth-child(2){border-left:0;border-top:1px solid #e0d7c9;padding:18px 0}.article-neighbor strong{font-size:20px}.article-neighbor>span{margin-bottom:6px}.article-related{margin-top:32px}.article-related-heading h2{font-size:26px}.article-related-grid{grid-template-columns:minmax(0,1fr);gap:20px}.article-related-copy{padding:20px}.article-related-copy h3{font-size:23px}.article-related-copy p{font-size:14px}.article-related-image{aspect-ratio:16/9}}
/* Homepage: clearer architecture and restrained feedback for actionable elements. */
.home-page .heritage-hero .hero-photo{filter:saturate(.85);image-rendering:auto}
.home-page .heritage-hero:after{background:linear-gradient(180deg,#fff9ee65,transparent 52%,#12171045)}
.home-page .hero-heading{text-shadow:0 1px 10px #fffdf5a6}
.home-page main :is(.service-tile,.project-card,.site-item,.news-row){transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
.home-page :is(.hero-link,.text-link,.button,.hero-bottom a,.footer a,.header .nav a){transition:transform .2s ease,color .2s ease,box-shadow .2s ease}
.home-page .footer a,.home-page .hero-bottom a{display:inline-block}
@media(hover:hover) and (pointer:fine){
 .home-page main :is(.service-tile,.project-card,.site-item):hover{transform:translateY(-6px);box-shadow:0 14px 26px #283c3026}
 .home-page main .news-row:hover{transform:translateY(-4px);background:#fffcf480;box-shadow:0 10px 20px #283c3012}
 .home-page :is(.hero-link,.text-link,.button,.hero-bottom a,.footer a,.header .nav a):hover{transform:translateY(-3px)}
}
.home-page main :is(.service-tile,.project-card,.site-item,.news-row):focus-visible{transform:translateY(-4px);outline:2px solid #627e69;outline-offset:4px}
.home-page :is(.hero-link,.text-link,.button,.hero-bottom a,.footer a,.header .nav a):focus-visible{transform:translateY(-3px);outline:2px solid #627e69;outline-offset:4px}
.home-page main :is(.service-tile,.project-card,.site-item,.news-row):active{transform:translateY(-2px);box-shadow:0 6px 16px #283c3020}
.home-page :is(.hero-link,.text-link,.button,.hero-bottom a,.footer a,.header .nav a):active{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.home-page main :is(.service-tile,.project-card,.site-item,.news-row),.home-page :is(.hero-link,.text-link,.button,.hero-bottom a,.footer a,.header .nav a){transform:none!important;transition:none!important}}
/* Each case opens with its own photograph, heading and breadcrumb navigation. */
.case-banner{position:relative;isolation:isolate;background:#33443c;color:#fffdf7;overflow:hidden}
.case-banner-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;z-index:-2}
.case-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#13241ecc 0%,#13241e66 65%,#13241e26),linear-gradient(0deg,#17251b66,transparent 75%);z-index:-1;pointer-events:none}
.case-banner-inner{min-height:390px;padding-top:30px;padding-bottom:46px;display:flex;flex-direction:column;justify-content:space-between;gap:55px}
.case-banner .breadcrumbs{color:#fffdf7;margin:0;flex-wrap:wrap;line-height:1.9;text-shadow:0 1px 4px #17251b80}
.case-banner .breadcrumbs a,.case-banner .breadcrumbs span{color:inherit}.case-banner .breadcrumbs a:hover{text-decoration:underline;text-underline-offset:5px}
.case-banner-caption{display:flex;justify-content:space-between;align-items:flex-end;gap:32px}
.case-banner-caption>div{min-width:0;max-width:850px}.case-banner .section-label{color:#ede0c5;margin-bottom:14px}.case-banner .section-label:before{background:#d5ba8c}
.case-banner h1{font:48px/1.45 var(--serif);letter-spacing:4px;margin:0 0 15px;overflow-wrap:anywhere;color:#fffdf7;text-shadow:0 2px 10px #12211650}
.case-banner-caption p{font-size:15px;line-height:1.9;color:#f0eee3;margin:0;max-width:650px;overflow-wrap:anywhere}
.case-banner-link{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;flex-shrink:0;padding:13px 18px;min-height:48px;border:1px solid #fffdf76b;background:#17251b50;color:#fffdf7;font-size:13px;letter-spacing:1px;transition:background .2s}
.case-banner-link:hover{background:#17251b99}.case-banner a:focus-visible{outline:2px solid #fffdf7;outline-offset:5px}
.case-detail{padding-top:44px}
@media(min-width:1600px){.case-banner-inner{min-height:440px}}
@media(max-width:1000px){.case-banner-inner{min-height:350px;padding-bottom:35px;gap:38px}.case-banner h1{font-size:39px;letter-spacing:3px}.case-banner-caption{gap:24px}}
@media(max-width:680px){.case-banner-inner{min-height:320px;padding-top:22px;padding-bottom:28px;gap:32px}.case-banner-caption{display:block}.case-banner h1{font-size:32px;letter-spacing:2px;line-height:1.5;margin-bottom:12px}.case-banner-caption p{font-size:13px;line-height:1.9}.case-banner .section-label{font-size:13px;margin-bottom:8px}.case-banner-link{margin-top:20px;padding:10px 15px;min-height:44px;gap:25px}.case-banner-photo{object-position:center}.case-banner:after{background:linear-gradient(90deg,#13241ec7,#13241e5c),linear-gradient(0deg,#17251b55,transparent)}.case-detail{padding-top:28px}}
/* Shared detail banners and more complete service pages. */
.article-banner .case-banner-caption>div{max-width:1060px}
.article-banner h1{font-size:40px;letter-spacing:2px;line-height:1.55}
.detail-banner-date{margin-top:18px;color:#f0eee3;font-size:13px;line-height:1.8;letter-spacing:1px}
.article-detail .article-body{margin-top:0}.gallery-detail .project-detail h2{font:30px/1.5 var(--serif);margin-bottom:22px}
.service-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:38px;align-items:start;scroll-margin-top:120px}
.service-detail-photo{margin:0;background:#eeeadf;border:1px solid #ded5c4}.service-detail-photo img{width:100%;height:auto;max-height:600px;object-fit:contain}
.service-detail-photo figcaption{padding:14px 20px;color:#776c5a;font-size:13px;line-height:1.8}
.service-detail-copy{padding:32px;border:1px solid #ded5c4;background:#fffdf8;min-width:0}.service-detail-copy h2{font:29px/1.6 var(--serif);letter-spacing:2px;margin:0 0 20px}
.service-detail-body{font-size:16px;line-height:2;color:#546052;overflow-wrap:anywhere}.service-detail-body p{margin:0 0 20px}
.service-enquiry{border-top:1px solid #e4dbcb;margin-top:24px;padding-top:24px}.service-enquiry>span{font-size:13px;color:#837059}.service-phone{display:block;font:27px/1.8 "Yuan Serif",serif;color:#416875;margin:5px 0 17px}
.service-enquiry .button{border-color:#859b8b;color:#436355;width:100%;justify-content:space-between}
.service-brief{background:#ebece3;border:1px solid #dce0d2;padding:34px;margin-top:44px}.service-brief>h2{font:30px/1.6 var(--serif);letter-spacing:1px;margin-bottom:26px}
.service-brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.service-brief-grid>div+div{border-left:1px solid #cdd3c5;padding-left:28px}
.service-brief h3{font:23px/1.6 var(--serif);margin:0 0 10px;color:#52684f}.service-brief p{font-size:14px;line-height:2;color:#6a7063;margin:0}
.service-more{margin:44px 0 30px;padding:28px 0;border-top:1px solid #ded5c4;border-bottom:1px solid #ded5c4}.service-more h2{font:27px/1.5 var(--serif);margin-bottom:20px}
.service-more-links{display:flex;gap:12px;flex-wrap:wrap}.service-more-links a{display:flex;align-items:center;gap:24px;min-height:46px;padding:10px 18px;border:1px solid #ded5c4;font-size:14px;background:#fffdf8}.service-more-links a:hover{border-color:#8b9b88;color:#496651}
@media(max-width:1000px){.service-overview{gap:24px}.service-detail-copy{padding:24px}.article-banner h1{font-size:34px}}
@media(max-width:680px){.article-banner h1{font-size:28px;letter-spacing:1px}.detail-banner-date{font-size:12px;margin-top:14px}.service-overview{grid-template-columns:minmax(0,1fr);gap:24px;scroll-margin-top:98px}.service-detail-copy{padding:25px 22px}.service-detail-copy h2{font-size:26px}.service-detail-body{font-size:15px}.service-phone{font-size:25px}.service-brief{padding:25px 22px;margin-top:30px}.service-brief>h2{font-size:25px;margin-bottom:22px}.service-brief-grid{grid-template-columns:minmax(0,1fr);gap:22px}.service-brief-grid>div+div{border-left:0;border-top:1px solid #cdd3c5;padding:22px 0 0}.service-brief h3{font-size:22px}.service-more{margin-top:32px;padding:24px 0}.service-more-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-more-links a{padding:10px 12px;gap:8px;justify-content:space-between}.gallery-detail .project-detail h2{font-size:26px}}
/* 1.3.17 Contact and business directory: warm stone, jade, generous editorial spacing. */
.contact-redesign,.services-redesign{padding-top:70px;padding-bottom:80px}
.contact-intro,.services-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:38px}
.contact-intro h2{font-size:30px;line-height:1.6;margin:16px 0 0}.contact-intro>p{color:#89765d;font-size:14px;margin:0 0 8px;line-height:1.9}
.contact-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:42px;align-items:stretch}
.contact-business{padding:34px 36px;background:#e6ede7;border:1px solid #cdd8cf;border-top:3px solid #537066}
.contact-business-number{display:block;width:fit-content;margin:16px 0 20px;font:500 clamp(29px,3vw,44px)/1.3 "Yuan Serif",serif;color:#31594e;letter-spacing:1px}
.contact-business-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.contact-business-bottom p{font-size:13px;line-height:1.9;color:#62746a;margin:0}.contact-call-action{border-bottom:1px solid #829789;padding:12px 0;color:#31594e;white-space:nowrap;font-size:14px}
.contact-facts{display:grid;grid-template-columns:1fr 1fr;margin:0;background:#fffdf7;border:1px solid #ded9cd;border-top:0;padding:8px 30px}.contact-facts>div{padding:20px 6px;min-width:0}.contact-facts dt{font-size:12px;color:#897c66;margin-bottom:8px;letter-spacing:2px}.contact-facts dd{margin:0;font-size:16px;overflow-wrap:anywhere;line-height:1.7}
.contact-address{padding:30px 0 0}.contact-address h3{font-family:inherit;font-size:19px;line-height:1.8;margin:14px 0 8px}.contact-address p{font-size:13px;color:#817967;margin:0 0 14px}.contact-address button{background:transparent;color:inherit;cursor:pointer;font-family:inherit}
.contact-atmosphere{position:relative;min-height:510px;overflow:hidden;background:#d9d8c9}.contact-atmosphere>img{position:absolute;width:100%;height:100%;object-fit:cover}.contact-atmosphere:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(24,37,30,.85))}.contact-atmosphere>div{position:absolute;z-index:1;bottom:36px;left:36px;right:24px;color:#fff8e8}.contact-atmosphere .section-label{color:#e0d3b8}.contact-atmosphere h2{font-size:36px;line-height:1.7;margin:18px 0 20px}.contact-atmosphere .text-link{color:#fff8e8;border-color:#baab90}
.contact-preparation{margin-top:64px;padding-top:34px;border-top:1px solid #cfc7b7}.contact-preparation-heading h2{font-size:28px;margin:16px 0 28px}.contact-preparation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.contact-preparation-grid>div{padding-left:20px;border-left:2px solid #b6bda5}.contact-preparation-grid span{font-size:18px;font-family:"Yuan Serif",serif}.contact-preparation-grid p{font-size:14px;color:#807665;line-height:1.9;margin:12px 0 0}
.services-intro h2{font-size:40px;line-height:1.5;margin:18px 0 0}.services-intro>p{font-size:16px;line-height:2;color:#827660;padding:0 0 4px;margin:0}.services-shortcuts{display:flex;flex-wrap:wrap;gap:12px;padding:24px 0 32px;border-top:1px solid #d9d1c1}.services-shortcuts a{padding:10px 22px;border:1px solid #d7d0c0;background:#fbf9f2;font-size:14px;transition:background .2s,color .2s}.services-shortcuts a:hover,.services-shortcuts a:focus-visible{background:#e3e9df;color:#365749}
.service-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 26px}.service-catalog-card{display:block;background:#fffdf7;border:1px solid #e0d9c9;scroll-margin-top:110px;transition:transform .25s,box-shadow .25s}.service-catalog-card:hover,.service-catalog-card:focus-visible{transform:translateY(-6px);box-shadow:0 16px 32px #343c2812}.service-catalog-photo{aspect-ratio:1.55;overflow:hidden}.service-catalog-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.service-catalog-card:hover img{transform:scale(1.035)}.service-catalog-copy{padding:26px}.service-catalog-copy h3{font-size:28px;margin:0 0 12px}.service-catalog-copy p{font-size:14px;color:#827360;line-height:1.9;margin:0 0 24px;min-height:53px}.service-catalog-more{display:flex;justify-content:space-between;font-size:13px;color:#56705f;border-top:1px solid #e1dacb;padding-top:18px}
.services-scope{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;padding:44px 0;border-top:1px solid #cfc7b7;margin-top:58px}.services-scope h2{font-size:30px;margin:16px 0 0}.services-scope>p{font-size:16px;line-height:2.2;color:#7e715e;margin:0}.services-inquiry{background:#e7ebe1;border-left:3px solid #788b6a;padding:40px 44px;display:flex;align-items:center;justify-content:space-between;gap:30px}.services-inquiry h2{font-size:32px;margin:14px 0}.services-inquiry p{font-size:14px;line-height:1.9;color:#737e68;margin:0}.services-inquiry>div:last-child{display:flex;flex-direction:column;gap:18px;align-items:flex-end}.services-inquiry-phone{font:28px "Yuan Serif",serif;white-space:nowrap;color:#3a6150}
@media(max-width:1000px){.contact-layout{gap:24px;grid-template-columns:1.15fr .85fr}.contact-business{padding:28px 24px}.contact-facts{padding:8px 18px}.contact-intro{display:block}.contact-intro>p{margin-top:16px}.contact-atmosphere>div{left:24px}.service-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.services-inquiry{padding:32px}.services-intro h2{font-size:34px}}
@media(max-width:680px){.contact-redesign,.services-redesign{padding-top:38px;padding-bottom:48px}.contact-intro,.services-intro{display:block;margin-bottom:26px}.contact-intro h2{font-size:25px;line-height:1.7}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-business{padding:24px}.contact-business-number{font-size:32px;letter-spacing:0}.contact-facts dd{font-size:15px}.contact-address h3{font-size:18px}.contact-atmosphere{min-height:350px}.contact-atmosphere h2{font-size:30px}.contact-preparation{margin-top:36px;padding-top:28px}.contact-preparation-heading h2{font-size:25px;line-height:1.7}.contact-preparation-grid{grid-template-columns:1fr;gap:22px}.contact-preparation-grid p{margin-top:8px}.services-intro h2{font-size:30px}.services-intro>p{font-size:14px;margin-top:20px}.services-shortcuts{gap:8px;padding:20px 0 24px}.services-shortcuts a{font-size:13px;padding:8px 12px}.service-catalog{grid-template-columns:1fr;gap:24px}.service-catalog-copy{padding:22px}.service-catalog-copy h3{font-size:26px}.service-catalog-copy p{min-height:0;margin-bottom:20px}.services-scope{grid-template-columns:1fr;gap:20px;margin-top:36px;padding:30px 0}.services-scope h2{font-size:26px}.services-scope>p{font-size:14px}.services-inquiry{display:block;padding:28px 24px}.services-inquiry h2{font-size:28px}.services-inquiry>div:last-child{align-items:flex-start;margin-top:24px}.services-inquiry-phone{font-size:26px}.contact-hero .case-banner-caption p,.services-hero .case-banner-caption p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.service-catalog-card,.service-catalog-photo img{transition:none}.service-catalog-card:hover,.service-catalog-card:focus-visible,.service-catalog-card:hover img{transform:none}}


/* Keep the mobile scroll cue clear of the fixed back-to-top control. */
@media(max-width:680px){.hero-bottom{padding-right:56px}.services-shortcuts a{min-height:44px;display:flex;align-items:center}}
.visual-note{position:absolute;right:24px;bottom:12px;z-index:2;padding:4px 9px;background:#20392cd9;color:#fffdf3;font:12px/1.6 "Yuan Sans",sans-serif;letter-spacing:0;pointer-events:none}
.heritage-hero .visual-note{bottom:64px}
@media(max-width:680px){.visual-note{right:20px;font-size:12px}.heritage-hero .visual-note{bottom:64px}}

/* Compact desktop contact card; mobile dock retains its existing 72px layout. */
@media(min-width:681px){
 .contact-widget{width:250px}
 .contact-panel{padding:22px 19px 17px;text-align:left;border:1px solid #ceded9;border-radius:14px;background:linear-gradient(135deg,#fffef9,#eef5f1);box-shadow:0 10px 32px #254b4320}
 .contact-card-kicker{margin:0 24px 14px 0;color:#6c7c71;font-size:11px;letter-spacing:2px}
 .contact-widget.expanded .contact-toggle{display:none}
 .contact-call{padding:0;background:transparent;border:0;border-radius:0}
 .contact-call>span{font-size:12px;letter-spacing:1px;color:#59766f}
 .contact-call>a{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:44px;font:600 21px/1.5 "Yuan Sans",sans-serif;color:#2c5966;letter-spacing:0}
 .contact-call-arrow{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#e1ebd7;color:#5e7952;font-size:22px;font-weight:400}
 .contact-toggle{background:#f1f6f2;color:#365d60;border-color:#cbdcd5;box-shadow:0 5px 18px #24464912}
 .contact-dismiss{color:#697e74}
 .contact-toggle:hover{background:#e4eee7;color:#2c5155}
}

/* Site directory: editorial entry cards and complete published-content index. */
.directory-hero{padding:35px 0 45px;background:linear-gradient(115deg,#e6ebe1,#f6f2e8);border-bottom:1px solid #d6dece}
.directory-hero .breadcrumbs{margin-bottom:35px}.directory-hero h1{font-size:clamp(34px,4vw,54px);font-weight:400;letter-spacing:6px;margin:14px 0}
.directory-hero p{color:#617061;letter-spacing:2px}.directory-jumps{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.directory-jumps a{display:flex;align-items:center;gap:18px;min-height:44px;padding:8px 15px;background:#fffdf8b0;border:1px solid #d6ddce;border-radius:3px;font-size:13px}
.directory-jumps small{color:#8a917e}.directory-content{padding-top:55px;padding-bottom:65px}
.directory-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.directory-heading h2{font-size:30px;font-weight:400;margin:12px 0 0}.directory-heading p{font-size:13px;color:#7a816e}
.directory-main-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.directory-main-card{position:relative;padding:27px 24px 42px;background:#fffdf8;border:1px solid #deded1;transition:transform .2s,border-color .2s}
.directory-main-card h3{font-size:23px;font-weight:400;margin:0 0 10px}.directory-main-card p{font-size:13px;color:#727b6b;line-height:1.8}.directory-main-card>span{position:absolute;bottom:15px;right:23px;color:#6e866c}
.directory-main-card:hover{transform:translateY(-3px);border-color:#8da18c}
.directory-collections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:48px;align-items:start}
.directory-collection{border-top:2px solid #82927a;padding:22px 24px;background:#f0eee5;scroll-margin-top:125px;min-width:0}
.directory-collection-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid #d7dacb}
.directory-collection-heading h2{font-size:25px;font-weight:400;margin:0}.directory-collection-heading>span{font-size:12px;color:#818572;white-space:nowrap}
.directory-collection ul{list-style:none;padding:10px 0 0;margin:0}.directory-collection li+li{border-top:1px solid #deded3}
.directory-collection li a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;padding:11px 0;font-size:14px;line-height:1.8}.directory-collection i{font-style:normal;color:#8f9b80;flex-shrink:0}
.directory-collection li a:hover{color:#37686b}.directory-help{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#e5ebe0;padding:32px;margin-top:38px}
.directory-help h2{font-size:26px;font-weight:400;margin:0 0 10px}.directory-help p{font-size:13px;color:#6b7c68}
@media(max-width:1000px){.directory-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.directory-hero{padding:22px 0 30px}.directory-hero .breadcrumbs{margin-bottom:23px}.directory-content{padding-top:35px}.directory-jumps{gap:8px}.directory-jumps a{padding:7px 11px;gap:10px}.directory-heading{display:block}.directory-heading p{margin-top:14px}.directory-main-card{padding:21px 16px 35px}.directory-main-card h3{font-size:21px}.directory-main-grid{gap:10px}.directory-collections{grid-template-columns:1fr;gap:22px;margin-top:32px}.directory-collection{padding:20px;scroll-margin-top:95px}.directory-help{align-items:start;flex-direction:column;padding:24px}.directory-help h2{font-size:23px}}

/* On-site records: uncropped photography, reading notes and published neighbours. */
.gallery-overview{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:36px;align-items:start;scroll-margin-top:124px}
.gallery-photograph{margin:0;background:#ece9de;border:1px solid #dedacc;min-width:0}
.gallery-photograph>img{display:block;width:100%;height:auto;max-height:680px;object-fit:contain}
.gallery-photograph figcaption{display:flex;justify-content:space-between;gap:18px;padding:17px 22px;font-size:12px;color:#7d7d69;border-top:1px solid #dedacc}
.gallery-photograph figcaption>span:last-child{white-space:nowrap}
.gallery-notes{background:#fffdf7;border:1px solid #e1dacb;padding:34px;min-width:0}
.gallery-notes h2{font:400 29px/1.6 var(--serif);letter-spacing:2px;margin:15px 0 22px}
.gallery-record-body{font-size:15px;line-height:2;color:#736e5f;overflow-wrap:anywhere}.gallery-record-body p{margin:0 0 16px}
.gallery-reading-note{border-top:1px solid #dedbce;padding-top:22px;margin-top:22px}.gallery-reading-note>span{font-size:12px;letter-spacing:2px;color:#71856c}.gallery-reading-note>p{font-size:13px;line-height:2;color:#818575;margin:12px 0 0}
.gallery-contact{border-top:1px solid #dedbce;margin-top:24px;padding-top:22px}.gallery-contact>span{font-size:12px;display:block;color:#839079}.gallery-contact>a[href^="tel:"]{font:600 24px/1.8 "Yuan Sans",sans-serif;color:#406870;display:block;white-space:nowrap}.gallery-contact>.text-link{margin-top:12px;font-size:13px}
.gallery-neighbors{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:38px;border-top:1px solid #d9d7c9;border-bottom:1px solid #d9d7c9;padding:24px 0}
.gallery-neighbors>*{min-width:0;padding:8px 0}.gallery-neighbors>:last-child{text-align:right}.gallery-neighbors span{display:block;font-size:12px;color:#8c806b;margin-bottom:10px}.gallery-neighbors strong{font:400 22px/1.6 var(--serif);overflow-wrap:anywhere}.gallery-neighbors .is-empty p{font-size:14px;color:#9c9e90;margin:0}.gallery-neighbors a:hover{color:#46746b}
.gallery-related{padding-top:55px;scroll-margin-top:118px}.gallery-related .section-head{margin-bottom:28px}.gallery-related h2{font-size:30px;letter-spacing:2px}.gallery-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.gallery-related-grid .site-item{border:1px solid #dddccf;background:#fffdf7;min-width:0}.gallery-related-grid .site-image img{width:100%;height:230px;object-fit:cover}.gallery-related-grid .site-item>p{padding:19px 20px;margin:0;font-size:21px;line-height:1.7}.gallery-return{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:35px}
@media(max-width:1000px){.gallery-overview{gap:24px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.gallery-notes{padding:24px}.gallery-notes h2{font-size:25px}.gallery-related-grid{gap:18px}.gallery-related-grid .site-image img{height:190px}}
@media(max-width:680px){.gallery-overview{grid-template-columns:1fr;gap:22px;scroll-margin-top:95px}.gallery-photograph>img{max-height:530px}.gallery-photograph figcaption{padding:13px 16px;font-size:11px}.gallery-notes{padding:25px 22px}.gallery-notes h2{font-size:25px;letter-spacing:1px}.gallery-contact>a[href^="tel:"]{font-size:23px}.gallery-neighbors{gap:20px;margin-top:28px;padding:18px 0}.gallery-neighbors strong{font-size:20px}.gallery-related{padding-top:38px}.gallery-related .section-head{align-items:end;gap:14px}.gallery-related h2{font-size:24px;letter-spacing:0;line-height:1.7}.gallery-related .section-head>.text-link{white-space:nowrap;font-size:12px}.gallery-related-grid{grid-template-columns:1fr;gap:22px}.gallery-related-grid .site-image img{height:auto;aspect-ratio:4/3}.gallery-related-grid .site-item>p{font-size:23px}.gallery-return{font-size:13px}}

/* About Yuanjing: a spacious company narrative with timber details and garden views. */
.about-hero .case-banner-photo{object-position:center 55%}
.about-redesign>.about-story{margin:0 auto}
.about-story{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:90px;padding-top:80px;padding-bottom:85px;scroll-margin-top:116px}
.about-story-copy h2{font:400 clamp(28px,3vw,42px)/1.65 var(--serif);letter-spacing:2px;margin:20px 0 27px}.about-company{font-size:14px;color:#74836b;letter-spacing:1px;padding-left:15px;border-left:2px solid #a0ab8d;margin:0 0 25px}
.about-story-body{font-size:15px;line-height:2.2;color:#756e60}.about-story-body p{margin:0 0 18px}.about-story-copy>.text-link{margin-top:14px;font-size:13px}
.about-wood-frame{margin:0;min-width:0}.about-wood-frame>div{padding:11px;border:1px solid #cbd0bb;border-radius:230px 230px 3px 3px;background:#edeee3}
.about-wood-frame img{display:block;width:100%;height:470px;object-fit:cover;object-position:64% center;border-radius:220px 220px 2px 2px}.about-wood-frame figcaption{font:14px/1.8 var(--serif);text-align:center;letter-spacing:3px;color:#8a816c;margin-top:18px}
.about-principles{background:#e9ede3;border-top:1px solid #dce1d2;border-bottom:1px solid #dce1d2;padding:62px 0 70px}.about-section-heading h2{font:400 34px/1.7 var(--serif);letter-spacing:2px;margin:15px 0 32px}
.about-principle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.about-principle-grid article{border-top:1px solid #b8c3aa;padding:25px 0 0;position:relative}.about-principle-theme{font:400 44px/1.4 var(--serif);color:#a5b198;letter-spacing:7px;display:block;margin-bottom:21px}.about-principle-grid h3{font:400 25px/1.6 var(--serif);margin:0 0 13px;letter-spacing:1px}.about-principle-grid p{font-size:14px;line-height:2;color:#74806d;margin:0;max-width:330px}
.about-garden{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:70px;align-items:center;padding-top:82px;padding-bottom:82px}.about-garden figure{margin:0;min-width:0}.about-garden img{display:block;width:100%;height:410px;object-fit:cover}.about-garden-copy h2{font:400 37px/1.7 var(--serif);letter-spacing:4px;margin:18px 0 25px}.about-garden-copy blockquote{font-size:15px;line-height:2.2;color:#7e7664;margin:0 0 25px;padding:0 0 0 20px;border-left:1px solid #bac3aa}.about-garden-copy>.text-link{font-size:13px}
.about-works{border-top:1px solid #ddd9cb;padding-top:55px;padding-bottom:70px}.about-works .section-head{margin-bottom:30px}.about-works h2{font:400 34px/1.7 var(--serif);letter-spacing:2px}.about-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.about-project-grid .project-image img{height:235px;width:100%;object-fit:cover}.about-project-grid .project-meta h3{font-size:24px}.about-project-grid .project-meta p{font-size:13px}.about-project-grid .project-meta{gap:12px}.about-project-grid .round-arrow{width:36px;height:36px;flex-shrink:0}
.about-invitation{background:#e6e9dd;border-top:1px solid #d7ddcb;padding:45px 0}.about-invitation>.wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}.about-invitation h2{font:400 30px/1.8 var(--serif);letter-spacing:2px;margin:14px 0}.about-invitation p{font-size:12px;color:#7a826c;margin:0}.about-invitation-actions{flex-shrink:0;display:flex;flex-direction:column;gap:14px;align-items:flex-end}.about-invitation-actions>.button{color:#3f6359;border-color:#859b7c;min-width:195px}.about-invitation-actions>a:last-child{font-size:11px;color:#7b8570}.about-invitation-actions strong{display:block;font:600 23px/1.8 "Yuan Sans",sans-serif;color:#466a69;letter-spacing:0}
@media(max-width:1000px){.about-story{gap:40px;padding-top:55px;padding-bottom:60px}.about-wood-frame img{height:400px}.about-principle-grid{gap:24px}.about-garden{gap:35px;padding-top:60px;padding-bottom:60px}.about-garden img{height:370px}.about-garden-copy h2{font-size:31px}.about-project-grid{gap:20px}.about-project-grid .project-image img{height:190px}.about-project-grid .project-meta h3{font-size:21px}.about-invitation h2{font-size:26px}}
@media(max-width:680px){.about-story{grid-template-columns:1fr;gap:32px;padding-top:42px;padding-bottom:46px;scroll-margin-top:95px}.about-story-copy h2{font-size:29px;letter-spacing:1px;margin-top:18px}.about-company{font-size:13px}.about-story-body{font-size:15px;line-height:2.1}.about-wood-frame{max-width:420px;width:100%;margin:auto}.about-wood-frame img{height:350px}.about-wood-frame figcaption{font-size:13px;letter-spacing:2px}.about-principles{padding:40px 0}.about-section-heading h2{font-size:27px;letter-spacing:1px;margin-bottom:25px}.about-principle-grid{grid-template-columns:1fr;gap:26px}.about-principle-grid article{padding-top:22px;display:grid;grid-template-columns:65px 1fr;column-gap:18px}.about-principle-theme{grid-row:1/3;writing-mode:vertical-rl;font-size:32px;letter-spacing:7px;margin:0}.about-principle-grid h3{font-size:24px;margin-bottom:10px}.about-principle-grid p{grid-column:2;font-size:14px}.about-garden{grid-template-columns:1fr;gap:30px;padding-top:46px;padding-bottom:46px}.about-garden img{height:auto;aspect-ratio:4/3}.about-garden-copy h2{font-size:30px;letter-spacing:3px}.about-works{padding-top:36px;padding-bottom:44px}.about-works .section-head{align-items:end;gap:14px}.about-works h2{font-size:28px;letter-spacing:1px}.about-works .section-head>.text-link{font-size:12px;white-space:nowrap}.about-project-grid{grid-template-columns:1fr;gap:28px}.about-project-grid .project-image img{height:auto;aspect-ratio:4/3}.about-project-grid .project-meta h3{font-size:24px}.about-invitation{padding:34px 0}.about-invitation>.wrap{flex-direction:column;align-items:start;gap:24px}.about-invitation h2{font-size:26px;letter-spacing:1px}.about-invitation-actions{align-items:start;gap:12px}}

/* Every return-to-list action shares right alignment; previous/next reading stays paired. */
.page-return,.case-return,.detail-back{display:flex;justify-content:flex-end;text-align:right}
.page-return{margin-top:32px}
.gallery-return{justify-content:flex-end}
.gallery-return>a:last-child{margin-left:auto}

/* 1.3.26: illustrated technical reading */
.article-body.illustrated-article{max-width:820px;margin:0 auto 70px;line-height:2}
.article-body.illustrated-article h2{font-size:30px;letter-spacing:.03em;font-weight:400}
.article-body.illustrated-article .article-figure:has(img[src*="technical-article-"]){max-width:640px;margin-left:auto;margin-right:auto}
.article-body .article-figure{margin:38px 0 46px;width:100%;max-width:100%}
.article-body .article-figure>a{display:block;border:0;line-height:0;background:#eeeae0}
.article-body .article-figure img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.article-body .article-figure figcaption{margin:12px auto 0;text-align:center;color:#706e62;font-size:13px;line-height:1.8;max-width:90%;letter-spacing:.04em}
.article-body h2{margin-top:42px;line-height:1.55}
@media(max-width:680px){.article-body .article-figure{margin:26px 0 32px}.article-body .article-figure figcaption{font-size:12px;max-width:100%;letter-spacing:0}.article-body h2{margin-top:30px}.article-body.illustrated-article h2{font-size:24px;letter-spacing:0}.article-body.illustrated-article{margin-bottom:44px}}

/* 1.3.30 technical article pagination */
#technical-list{scroll-margin-top:120px}
.list-pagination{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:38px;padding-top:26px;border-top:1px solid #d8d0c2}
.list-pagination p{margin:0;color:#81755f;font-size:14px}
.pagination-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.pagination-links a,.pagination-current{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 13px;border:1px solid #d8d0c2;border-radius:3px;font-size:14px;text-decoration:none}
.pagination-links a{color:#635746;background:#fcfaf5;transition:background .18s,border-color .18s}
.pagination-links a:hover,.pagination-links a:focus-visible{background:#e8eee8;border-color:#697f70}
.pagination-current{background:#526d60;border-color:#526d60;color:#fff}
.pagination-gap{padding:0 3px;color:#81755f}
@media(max-width:680px){.list-pagination{flex-direction:column;gap:16px;margin-top:26px;padding-top:22px}.pagination-links{justify-content:center;gap:6px}.pagination-links a,.pagination-current{padding:8px 10px}#technical-list{scroll-margin-top:84px}}

/* 1.3.31 safe rich article body */
.rich-body{overflow-wrap:anywhere;line-height:1.95}
.rich-body .rich-align-center{text-align:center}.rich-body .rich-align-right{text-align:right}.rich-body .rich-align-justify{text-align:justify}
.rich-body .rich-photo{display:inline-block;max-width:100%;height:auto;vertical-align:middle}
.rich-body .rich-image-line{margin:26px 0}
.rich-body ul,.rich-body ol{padding-left:1.7em;margin:20px 0;list-style-position:outside}
.rich-body ul{list-style-type:disc}.rich-body ol{list-style-type:decimal}.rich-body li{display:list-item;margin:8px 0}
.rich-body blockquote{margin:24px 0;padding:14px 22px;border-left:3px solid #738776;background:#ecefe7;color:#50634f}
.rich-body a{color:#315f72;text-decoration:underline;text-underline-offset:4px}
.rich-body h2{margin-top:34px}.rich-body h3{margin-top:26px;font-size:1.3em}

/* 1.3.32 desktop contact card opens the contact page directly. */
.contact-direct-link{display:block;text-decoration:none;color:inherit}
.contact-direct-link .contact-number{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:44px;font:600 21px/1.5 "Yuan Sans",sans-serif;color:#2c5966;letter-spacing:0}
.contact-direct-link:hover{border-color:#88a394}
.contact-direct-link:focus-visible{outline:2px solid #527a68;outline-offset:4px}

/* 1.3.41: complete dates, concise home layout and smaller desktop contact card. */
.news-row,.article-list .news-row{grid-template-columns:94px minmax(0,1fr) 18px;gap:20px}
.news-date{font:14px/1.8 "Yuan Sans",sans-serif;font-variant-numeric:tabular-nums;color:#715e49;letter-spacing:0}
.news-row p{color:#665f54}
@media(min-width:681px){
 .contact-widget,.contact-widget.expanded{width:184px;right:18px;bottom:84px}
 .contact-widget .contact-panel{margin-bottom:0;padding:10px 12px;border-radius:10px;box-shadow:0 4px 16px #254b4317}
 .contact-widget .contact-card-kicker{display:none}
 .contact-widget .contact-call>span:first-child{font-size:11px;letter-spacing:0}
 .contact-widget .contact-number{font-size:17px;min-height:34px;gap:4px}
 .contact-widget .contact-call-arrow{width:24px;height:24px;flex-basis:24px;font-size:18px}
 .contact-widget.is-footer-visible{display:none}
}
@media(max-width:680px){
 .news-row,.article-list .news-row{grid-template-columns:1fr 18px;column-gap:12px;row-gap:6px;padding:20px 0}
 .news-row .news-date{grid-column:1/-1;font-size:12px}
 .news-row>div{grid-column:1;min-width:0}
 .news-row>span{grid-column:2;grid-row:2;align-self:start}
 .news-row h3{margin-bottom:5px;line-height:1.7}
 .home-page .heritage-hero{height:490px;height:clamp(420px,60svh,500px)}
 .home-page .hero-heading{top:30px}
 .home-page .hero-heading h1{margin:18px 0 12px}
 .home-page .section{padding:32px 0}
 .home-page .section-head{margin-bottom:22px}
 .home-page .head-aside{margin-top:10px}
 .home-page .prologue-grid{gap:20px}
 .home-page .prologue-copy p{margin-top:12px;line-height:1.9}
 .home-page .prologue-image img{height:200px}
 .home-page .vertical-title h2{font-size:28px;margin-top:9px;letter-spacing:1px}
 .home-page .service-tile{height:190px}
 .home-page .tile-title{font-size:22px;bottom:65px}
 .home-page .selected-grid{gap:22px}
 .home-page .selected-grid .feature img,.home-page .selected-grid>.project-card:not(.feature) .project-image img{height:200px}
 .home-page .selected-grid .project-meta{margin-top:10px}
 .home-page .selected-grid .project-meta h3{font-size:23px}
 .home-page .craft-photo img{height:200px}
 .home-page .craft-copy{padding:32px 20px}
 .home-page .craft-copy h2{font-size:29px;line-height:1.55;letter-spacing:2px}
 .home-page .craft-intro{margin-top:14px;color:#ddd7ca}
 .home-page .craft-values{margin:22px 0;gap:20px}
 .home-page .craft-values h3{font-size:21px}
 .home-page .craft-values p{color:#d1cbbd}
 .home-page .journal-grid{gap:24px}
 .home-page .journal-feature>img{display:none}
 .home-page .journal-feature>div{margin-top:0}
 .home-page .journal-feature p{margin-bottom:10px}
 .home-page .site-strip{gap:20px 12px}
 .home-page .site-image img{height:128px}
 .home-page .site-item>p{font-size:17px;margin-top:10px}
 .home-page .contact-band{padding:28px 0}
 .home-page .contact-band .button{margin-top:16px}
}

/* 首页“古建营造”前后区块收紧留白，卡片尺寸与内容层级保持不变。 */
.home-page .prologue.section{padding-bottom:72px}
.home-page .expertise.section{padding:72px 0 70px}
.home-page .expertise .section-head{margin-bottom:32px}
.home-page .selected.section{padding-top:72px}
@media(max-width:1000px){
 .home-page .prologue.section{padding-bottom:60px}
 .home-page .expertise.section{padding:60px 0 58px}
 .home-page .expertise .section-head{margin-bottom:30px}
 .home-page .selected.section{padding-top:60px}
}
@media(max-width:680px){
 .home-page .prologue.section{padding-bottom:52px}
 .home-page .expertise.section{padding:52px 0 50px}
 .home-page .expertise .section-head{margin-bottom:24px}
 .home-page .selected.section{padding-top:52px}
}
