/* Shared footer spacing and original WeChat codes. */
footer{padding:48px 32px 24px}
footer .foot-grid{max-width:1160px;grid-template-columns:minmax(260px,1.4fr) minmax(100px,.55fr) minmax(100px,.55fr) minmax(280px,1fr);gap:40px;align-items:start}
footer .foot-brand{grid-column:auto}
footer .footer-official-logo{width:76px;height:82px;margin-bottom:20px;padding:0}
footer .foot-brand p{max-width:320px;margin-top:0;font-size:13px;line-height:1.9}
footer .foot-col h5{margin:0 0 18px;font-size:14px}
footer .foot-col p{line-height:1.8;margin:0 0 6px;overflow-wrap:anywhere}
footer .foot-col a{line-height:2;padding:2px 0}
footer .footer-qr-codes{max-width:1160px;margin:20px auto 0;display:flex;justify-content:flex-end;gap:20px}
footer .foot-brand .footer-qr-codes,footer .foot-col .footer-qr-codes{justify-content:flex-start;margin:24px 0 0}
footer .footer-qr-codes img{display:block;width:112px;height:112px;object-fit:contain;background:#fff;flex:none;filter:invert(1);mix-blend-mode:screen}
footer .foot-bottom{max-width:1160px;margin:32px auto 0;padding-top:20px}
.renovation-page footer > .container-custom{max-width:1224px}
.renovation-page footer .footer-qr-codes{margin:0 0 24px;justify-content:flex-start}
@media(max-width:960px){
 footer .foot-grid{grid-template-columns:1.2fr 1fr;gap:32px 40px}
 footer .foot-brand{grid-column:auto}
 footer .foot-col:last-child{grid-column:2;grid-row:1 / span 2}
 footer .foot-col:nth-child(3){grid-column:1}
}
@media(max-width:600px){
 footer{padding:36px 24px 24px}
 footer .foot-grid{grid-template-columns:1fr 1fr;gap:28px 24px}
 footer .foot-brand{grid-column:1/-1}
 footer .foot-brand p{max-width:none}
 footer .foot-col:last-child{grid-column:1/-1;grid-row:auto;padding-top:24px;border-top:1px solid rgba(255,255,255,.14)}
 footer .foot-col:nth-child(3){grid-column:auto}
 footer .foot-bottom{margin-top:28px;font-size:11px;line-height:1.8}
 .renovation-page footer > .container-custom{padding-left:0;padding-right:0}
}

footer .footer-qr-item{margin:0;flex:none;text-align:center;width:112px}
footer .footer-qr-item figcaption{margin-top:10px;font-size:12px;line-height:1.5;white-space:nowrap;color:rgba(255,255,255,.85)}

@font-face{font-family:'Qingchi Handwriting';font-style:normal;font-weight:400;font-display:swap;src:url('slogan-handwriting-v1.woff2') format('woff2')}
footer .footer-slogan{font-family:'Qingchi Handwriting','STKaiti','KaiTi',cursive;color:#eee9d7;font-weight:400;line-height:1.5;letter-spacing:.08em;margin:0;text-align:left}
footer .footer-slogan span{display:block;font-size:clamp(28px,2.7vw,40px)}
footer .footer-slogan small{display:block;font-size:clamp(23px,2.2vw,32px);margin-top:8px;letter-spacing:.1em}
@media(min-width:961px){footer .foot-brand{grid-row:1/span 2}footer .foot-col{grid-row:1}footer .footer-slogan{grid-column:2/-1;grid-row:2;align-self:center;padding:8px 0 4px}footer .foot-grid{row-gap:24px}}
@media(max-width:960px){footer .footer-slogan{grid-column:1/-1;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);margin-top:0}}
.renovation-page footer > .container-custom > .footer-slogan{margin:24px 0}
/* Let the handwritten signature fill the space beneath all three columns. */
@media(min-width:961px){
 footer .foot-grid > .footer-slogan{text-align:center;padding:12px 0 8px}
 footer .foot-grid > .footer-slogan span{font-size:clamp(38px,3.5vw,50px);letter-spacing:.16em}
 footer .foot-grid > .footer-slogan small{font-size:clamp(29px,2.7vw,38px);letter-spacing:.16em;margin-top:8px}
}

/* Service cases use the same footer structure as the homepage. */
.renovation-page footer{background:#234943;color:rgba(246,242,234,.75);font-size:14px}
.renovation-page footer .foot-grid{display:grid;margin:0 auto}
.renovation-page footer .foot-brand p{color:rgba(246,242,234,.6)}
.renovation-page footer .foot-col h5{color:#f6f2ea;letter-spacing:2px;font-weight:500}
.renovation-page footer .foot-col a,.renovation-page footer .foot-col p{display:block;font-size:14px;color:rgba(246,242,234,.65)}
.renovation-page footer .foot-col a:hover{color:#f6f2ea}
.renovation-page footer .foot-bottom{border-top:1px solid rgba(246,242,234,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:rgba(246,242,234,.45)}
